py-geth 5.1.0__tar.gz → 5.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. {py_geth-5.1.0 → py_geth-5.2.1}/LICENSE +1 -1
  2. {py_geth-5.1.0 → py_geth-5.2.1}/MANIFEST.in +1 -0
  3. {py_geth-5.1.0/py_geth.egg-info → py_geth-5.2.1}/PKG-INFO +22 -11
  4. {py_geth-5.1.0 → py_geth-5.2.1}/README.md +4 -6
  5. {py_geth-5.1.0 → py_geth-5.2.1}/geth/install.py +4 -0
  6. {py_geth-5.1.0 → py_geth-5.2.1}/geth/types.py +1 -0
  7. {py_geth-5.1.0 → py_geth-5.2.1}/geth/utils/validation.py +1 -0
  8. {py_geth-5.1.0 → py_geth-5.2.1}/geth/wrapper.py +3 -0
  9. {py_geth-5.1.0 → py_geth-5.2.1/py_geth.egg-info}/PKG-INFO +22 -11
  10. {py_geth-5.1.0 → py_geth-5.2.1}/py_geth.egg-info/SOURCES.txt +1 -6
  11. {py_geth-5.1.0 → py_geth-5.2.1}/py_geth.egg-info/requires.txt +3 -3
  12. {py_geth-5.1.0 → py_geth-5.2.1}/pyproject.toml +58 -12
  13. py_geth-5.2.1/scripts/release/test_package.py +50 -0
  14. {py_geth-5.1.0 → py_geth-5.2.1}/setup.py +6 -5
  15. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/accounts/conftest.py +1 -2
  16. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/running/test_running_with_logging.py +1 -2
  17. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/utility/test_is_live_chain.py +1 -2
  18. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/utility/test_is_sepolia_chain.py +1 -2
  19. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/utility/test_validation.py +1 -2
  20. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/waiting/test_waiting_for_ipc_socket.py +2 -1
  21. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/waiting/test_waiting_for_rpc_connection.py +2 -1
  22. py_geth-5.1.0/tests/core/accounts/projects/test-01/geth/LOCK +0 -0
  23. py_geth-5.1.0/tests/core/accounts/projects/test-01/geth/nodekey +0 -1
  24. py_geth-5.1.0/tests/core/accounts/projects/test-02/geth/LOCK +0 -0
  25. py_geth-5.1.0/tests/core/accounts/projects/test-02/geth/nodekey +0 -1
  26. py_geth-5.1.0/tests/core/accounts/projects/test-03/geth/LOCK +0 -0
  27. py_geth-5.1.0/tests/core/accounts/projects/test-03/geth/nodekey +0 -1
  28. {py_geth-5.1.0 → py_geth-5.2.1}/geth/__init__.py +0 -0
  29. {py_geth-5.1.0 → py_geth-5.2.1}/geth/accounts.py +0 -0
  30. {py_geth-5.1.0 → py_geth-5.2.1}/geth/chain.py +0 -0
  31. {py_geth-5.1.0 → py_geth-5.2.1}/geth/default_blockchain_password +0 -0
  32. {py_geth-5.1.0 → py_geth-5.2.1}/geth/exceptions.py +0 -0
  33. {py_geth-5.1.0 → py_geth-5.2.1}/geth/genesis.json +0 -0
  34. {py_geth-5.1.0 → py_geth-5.2.1}/geth/main.py +0 -0
  35. {py_geth-5.1.0 → py_geth-5.2.1}/geth/mixins.py +0 -0
  36. {py_geth-5.1.0 → py_geth-5.2.1}/geth/process.py +0 -0
  37. {py_geth-5.1.0 → py_geth-5.2.1}/geth/py.typed +0 -0
  38. {py_geth-5.1.0 → py_geth-5.2.1}/geth/reset.py +0 -0
  39. {py_geth-5.1.0 → py_geth-5.2.1}/geth/utils/__init__.py +0 -0
  40. {py_geth-5.1.0 → py_geth-5.2.1}/geth/utils/encoding.py +0 -0
  41. {py_geth-5.1.0 → py_geth-5.2.1}/geth/utils/filesystem.py +0 -0
  42. {py_geth-5.1.0 → py_geth-5.2.1}/geth/utils/networking.py +0 -0
  43. {py_geth-5.1.0 → py_geth-5.2.1}/geth/utils/proc.py +0 -0
  44. {py_geth-5.1.0 → py_geth-5.2.1}/geth/utils/thread.py +0 -0
  45. {py_geth-5.1.0 → py_geth-5.2.1}/geth/utils/timeout.py +0 -0
  46. {py_geth-5.1.0 → py_geth-5.2.1}/py_geth.egg-info/dependency_links.txt +0 -0
  47. {py_geth-5.1.0 → py_geth-5.2.1}/py_geth.egg-info/not-zip-safe +0 -0
  48. {py_geth-5.1.0 → py_geth-5.2.1}/py_geth.egg-info/top_level.txt +0 -0
  49. {py_geth-5.1.0 → py_geth-5.2.1}/setup.cfg +0 -0
  50. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/accounts/projects/test-01/keystore/UTC--2015-08-24T21-30-14.222885490Z--ae71658b3ab452f7e4f03bda6f777b860b2e2ff2 +0 -0
  51. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/accounts/projects/test-02/keystore/UTC--2015-08-24T21-30-14.222885490Z--ae71658b3ab452f7e4f03bda6f777b860b2e2ff2 +0 -0
  52. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/accounts/projects/test-02/keystore/UTC--2015-08-24T21-32-00.716418819Z--e8e085862a8d951dd78ec5ea784b3e22ee1ca9c6 +0 -0
  53. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/accounts/projects/test-02/keystore/UTC--2015-08-24T21-32-04.748321142Z--0da70f43a568e88168436be52ed129f4a9bbdaf5 +0 -0
  54. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/accounts/test_account_list_parsing.py +0 -0
  55. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/accounts/test_create_geth_account.py +0 -0
  56. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/accounts/test_geth_accounts.py +0 -0
  57. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/running/test_running_dev_chain.py +0 -0
  58. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/running/test_running_mainnet_chain.py +0 -0
  59. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/running/test_running_sepolia_chain.py +0 -0
  60. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/running/test_use_as_a_context_manager.py +0 -0
  61. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/test_import_and_version.py +0 -0
  62. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/test_library_files.py +0 -0
  63. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/utility/test_constructing_test_chain_kwargs.py +0 -0
  64. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/utility/test_geth_version.py +0 -0
  65. {py_geth-5.1.0 → py_geth-5.2.1}/tests/core/waiting/conftest.py +0 -0
  66. {py_geth-5.1.0 → py_geth-5.2.1}/tests/installation/test_geth_installation.py +1 -1
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2016-2023 The Ethereum Foundation
3
+ Copyright (c) 2016-2025 The Ethereum Foundation
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,7 @@
1
1
  include LICENSE
2
2
  include README.md
3
3
 
4
+ recursive-include scripts *
4
5
  recursive-include tests *
5
6
 
6
7
  global-include *.pyi
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: py-geth
3
- Version: 5.1.0
3
+ Version: 5.2.1
4
4
  Summary: py-geth: Run Go-Ethereum as a subprocess
5
5
  Home-page: https://github.com/ethereum/py-geth
6
6
  Author: The Ethereum Foundation
@@ -17,6 +17,7 @@ Classifier: Programming Language :: Python :: 3.9
17
17
  Classifier: Programming Language :: Python :: 3.10
18
18
  Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
20
21
  Requires-Python: >=3.8, <4
21
22
  Description-Content-Type: text/markdown
22
23
  License-File: LICENSE
@@ -28,23 +29,35 @@ Requires-Dist: types-requests>=2.0.0
28
29
  Requires-Dist: typing-extensions>=4.0.1
29
30
  Provides-Extra: dev
30
31
  Requires-Dist: build>=0.9.0; extra == "dev"
31
- Requires-Dist: bumpversion>=0.5.3; extra == "dev"
32
+ Requires-Dist: bump_my_version>=0.19.0; extra == "dev"
32
33
  Requires-Dist: ipython; extra == "dev"
33
34
  Requires-Dist: mypy==1.10.0; extra == "dev"
34
35
  Requires-Dist: pre-commit>=3.4.0; extra == "dev"
35
36
  Requires-Dist: tox>=4.0.0; extra == "dev"
36
37
  Requires-Dist: twine; extra == "dev"
37
38
  Requires-Dist: wheel; extra == "dev"
38
- Requires-Dist: towncrier<22,>=21; extra == "dev"
39
+ Requires-Dist: towncrier<25,>=24; extra == "dev"
39
40
  Requires-Dist: flaky>=3.2.0; extra == "dev"
40
41
  Requires-Dist: pytest>=7.0.0; extra == "dev"
41
42
  Requires-Dist: pytest-xdist>=2.4.0; extra == "dev"
42
43
  Provides-Extra: docs
43
- Requires-Dist: towncrier<22,>=21; extra == "docs"
44
+ Requires-Dist: towncrier<25,>=24; extra == "docs"
44
45
  Provides-Extra: test
45
46
  Requires-Dist: flaky>=3.2.0; extra == "test"
46
47
  Requires-Dist: pytest>=7.0.0; extra == "test"
47
48
  Requires-Dist: pytest-xdist>=2.4.0; extra == "test"
49
+ Dynamic: author
50
+ Dynamic: author-email
51
+ Dynamic: classifier
52
+ Dynamic: description
53
+ Dynamic: description-content-type
54
+ Dynamic: home-page
55
+ Dynamic: keywords
56
+ Dynamic: license
57
+ Dynamic: provides-extra
58
+ Dynamic: requires-dist
59
+ Dynamic: requires-python
60
+ Dynamic: summary
48
61
 
49
62
  # py-geth
50
63
 
@@ -63,8 +76,6 @@ This library requires the `geth` executable to be present.
63
76
 
64
77
  ## Installation
65
78
 
66
- Installation
67
-
68
79
  ```bash
69
80
  python -m pip install py-geth
70
81
  ```
@@ -166,19 +177,19 @@ the current list of supported versions.
166
177
  Installation can be done via the command line:
167
178
 
168
179
  ```bash
169
- $ python -m geth.install v1.14.12
180
+ $ python -m geth.install v1.14.13
170
181
  ```
171
182
 
172
183
  Or from python using the `install_geth` function.
173
184
 
174
185
  ```python
175
186
  >>> from geth import install_geth
176
- >>> install_geth('v1.14.12')
187
+ >>> install_geth('v1.14.13')
177
188
  ```
178
189
 
179
190
  The installed binary can be found in the `$HOME/.py-geth` directory, under your
180
- home directory. The `v1.14.12` binary would be located at
181
- `$HOME/.py-geth/geth-v1.14.12/bin/geth`.
191
+ home directory. The `v1.14.13` binary would be located at
192
+ `$HOME/.py-geth/geth-v1.14.13/bin/geth`.
182
193
 
183
194
  ## About `DevGethProcess`
184
195
 
@@ -15,8 +15,6 @@ This library requires the `geth` executable to be present.
15
15
 
16
16
  ## Installation
17
17
 
18
- Installation
19
-
20
18
  ```bash
21
19
  python -m pip install py-geth
22
20
  ```
@@ -118,19 +116,19 @@ the current list of supported versions.
118
116
  Installation can be done via the command line:
119
117
 
120
118
  ```bash
121
- $ python -m geth.install v1.14.12
119
+ $ python -m geth.install v1.14.13
122
120
  ```
123
121
 
124
122
  Or from python using the `install_geth` function.
125
123
 
126
124
  ```python
127
125
  >>> from geth import install_geth
128
- >>> install_geth('v1.14.12')
126
+ >>> install_geth('v1.14.13')
129
127
  ```
130
128
 
131
129
  The installed binary can be found in the `$HOME/.py-geth` directory, under your
132
- home directory. The `v1.14.12` binary would be located at
133
- `$HOME/.py-geth/geth-v1.14.12/bin/geth`.
130
+ home directory. The `v1.14.13` binary would be located at
131
+ `$HOME/.py-geth/geth-v1.14.13/bin/geth`.
134
132
 
135
133
  ## About `DevGethProcess`
136
134
 
@@ -46,6 +46,7 @@ V1_14_9 = "v1.14.9"
46
46
  V1_14_10 = "v1.14.10"
47
47
  V1_14_11 = "v1.14.11"
48
48
  V1_14_12 = "v1.14.12"
49
+ V1_14_13 = "v1.14.13"
49
50
 
50
51
 
51
52
  LINUX = "linux"
@@ -341,6 +342,7 @@ install_v1_14_9 = functools.partial(install_from_source_code_release, V1_14_9)
341
342
  install_v1_14_10 = functools.partial(install_from_source_code_release, V1_14_10)
342
343
  install_v1_14_11 = functools.partial(install_from_source_code_release, V1_14_11)
343
344
  install_v1_14_12 = functools.partial(install_from_source_code_release, V1_14_12)
345
+ install_v1_14_13 = functools.partial(install_from_source_code_release, V1_14_13)
344
346
 
345
347
  INSTALL_FUNCTIONS = {
346
348
  LINUX: {
@@ -356,6 +358,7 @@ INSTALL_FUNCTIONS = {
356
358
  V1_14_10: install_v1_14_10,
357
359
  V1_14_11: install_v1_14_11,
358
360
  V1_14_12: install_v1_14_12,
361
+ V1_14_13: install_v1_14_13,
359
362
  },
360
363
  OSX: {
361
364
  V1_14_0: install_v1_14_0,
@@ -370,6 +373,7 @@ INSTALL_FUNCTIONS = {
370
373
  V1_14_10: install_v1_14_10,
371
374
  V1_14_11: install_v1_14_11,
372
375
  V1_14_12: install_v1_14_12,
376
+ V1_14_13: install_v1_14_13,
373
377
  },
374
378
  }
375
379
 
@@ -17,6 +17,7 @@ class GethKwargsTypedDict(TypedDict, total=False):
17
17
  cache: str | None
18
18
  data_dir: str | None
19
19
  dev_mode: bool | None
20
+ dev_period: str | None
20
21
  gcmode: Literal["full", "archive"] | None
21
22
  geth_executable: str | None
22
23
  ipc_disable: bool | None
@@ -26,6 +26,7 @@ class GethKwargs(BaseModel):
26
26
  cache: str | None = None
27
27
  data_dir: str | None = None
28
28
  dev_mode: bool | None = False
29
+ dev_period: str | None = None
29
30
  gcmode: Literal["full", "archive"] | None = None
30
31
  geth_executable: str | None = None
31
32
  ipc_disable: bool | None = None
@@ -153,6 +153,9 @@ def construct_popen_command(**geth_kwargs: Unpack[GethKwargsTypedDict]) -> list[
153
153
  if gk.dev_mode:
154
154
  builder.append("--dev")
155
155
 
156
+ if gk.dev_period is not None:
157
+ builder.extend(("--dev.period", gk.dev_period))
158
+
156
159
  if gk.rpc_enabled:
157
160
  builder.append("--http")
158
161
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: py-geth
3
- Version: 5.1.0
3
+ Version: 5.2.1
4
4
  Summary: py-geth: Run Go-Ethereum as a subprocess
5
5
  Home-page: https://github.com/ethereum/py-geth
6
6
  Author: The Ethereum Foundation
@@ -17,6 +17,7 @@ Classifier: Programming Language :: Python :: 3.9
17
17
  Classifier: Programming Language :: Python :: 3.10
18
18
  Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
20
21
  Requires-Python: >=3.8, <4
21
22
  Description-Content-Type: text/markdown
22
23
  License-File: LICENSE
@@ -28,23 +29,35 @@ Requires-Dist: types-requests>=2.0.0
28
29
  Requires-Dist: typing-extensions>=4.0.1
29
30
  Provides-Extra: dev
30
31
  Requires-Dist: build>=0.9.0; extra == "dev"
31
- Requires-Dist: bumpversion>=0.5.3; extra == "dev"
32
+ Requires-Dist: bump_my_version>=0.19.0; extra == "dev"
32
33
  Requires-Dist: ipython; extra == "dev"
33
34
  Requires-Dist: mypy==1.10.0; extra == "dev"
34
35
  Requires-Dist: pre-commit>=3.4.0; extra == "dev"
35
36
  Requires-Dist: tox>=4.0.0; extra == "dev"
36
37
  Requires-Dist: twine; extra == "dev"
37
38
  Requires-Dist: wheel; extra == "dev"
38
- Requires-Dist: towncrier<22,>=21; extra == "dev"
39
+ Requires-Dist: towncrier<25,>=24; extra == "dev"
39
40
  Requires-Dist: flaky>=3.2.0; extra == "dev"
40
41
  Requires-Dist: pytest>=7.0.0; extra == "dev"
41
42
  Requires-Dist: pytest-xdist>=2.4.0; extra == "dev"
42
43
  Provides-Extra: docs
43
- Requires-Dist: towncrier<22,>=21; extra == "docs"
44
+ Requires-Dist: towncrier<25,>=24; extra == "docs"
44
45
  Provides-Extra: test
45
46
  Requires-Dist: flaky>=3.2.0; extra == "test"
46
47
  Requires-Dist: pytest>=7.0.0; extra == "test"
47
48
  Requires-Dist: pytest-xdist>=2.4.0; extra == "test"
49
+ Dynamic: author
50
+ Dynamic: author-email
51
+ Dynamic: classifier
52
+ Dynamic: description
53
+ Dynamic: description-content-type
54
+ Dynamic: home-page
55
+ Dynamic: keywords
56
+ Dynamic: license
57
+ Dynamic: provides-extra
58
+ Dynamic: requires-dist
59
+ Dynamic: requires-python
60
+ Dynamic: summary
48
61
 
49
62
  # py-geth
50
63
 
@@ -63,8 +76,6 @@ This library requires the `geth` executable to be present.
63
76
 
64
77
  ## Installation
65
78
 
66
- Installation
67
-
68
79
  ```bash
69
80
  python -m pip install py-geth
70
81
  ```
@@ -166,19 +177,19 @@ the current list of supported versions.
166
177
  Installation can be done via the command line:
167
178
 
168
179
  ```bash
169
- $ python -m geth.install v1.14.12
180
+ $ python -m geth.install v1.14.13
170
181
  ```
171
182
 
172
183
  Or from python using the `install_geth` function.
173
184
 
174
185
  ```python
175
186
  >>> from geth import install_geth
176
- >>> install_geth('v1.14.12')
187
+ >>> install_geth('v1.14.13')
177
188
  ```
178
189
 
179
190
  The installed binary can be found in the `$HOME/.py-geth` directory, under your
180
- home directory. The `v1.14.12` binary would be located at
181
- `$HOME/.py-geth/geth-v1.14.12/bin/geth`.
191
+ home directory. The `v1.14.13` binary would be located at
192
+ `$HOME/.py-geth/geth-v1.14.13/bin/geth`.
182
193
 
183
194
  ## About `DevGethProcess`
184
195
 
@@ -31,22 +31,17 @@ py_geth.egg-info/dependency_links.txt
31
31
  py_geth.egg-info/not-zip-safe
32
32
  py_geth.egg-info/requires.txt
33
33
  py_geth.egg-info/top_level.txt
34
+ scripts/release/test_package.py
34
35
  tests/core/test_import_and_version.py
35
36
  tests/core/test_library_files.py
36
37
  tests/core/accounts/conftest.py
37
38
  tests/core/accounts/test_account_list_parsing.py
38
39
  tests/core/accounts/test_create_geth_account.py
39
40
  tests/core/accounts/test_geth_accounts.py
40
- tests/core/accounts/projects/test-01/geth/LOCK
41
- tests/core/accounts/projects/test-01/geth/nodekey
42
41
  tests/core/accounts/projects/test-01/keystore/UTC--2015-08-24T21-30-14.222885490Z--ae71658b3ab452f7e4f03bda6f777b860b2e2ff2
43
- tests/core/accounts/projects/test-02/geth/LOCK
44
- tests/core/accounts/projects/test-02/geth/nodekey
45
42
  tests/core/accounts/projects/test-02/keystore/UTC--2015-08-24T21-30-14.222885490Z--ae71658b3ab452f7e4f03bda6f777b860b2e2ff2
46
43
  tests/core/accounts/projects/test-02/keystore/UTC--2015-08-24T21-32-00.716418819Z--e8e085862a8d951dd78ec5ea784b3e22ee1ca9c6
47
44
  tests/core/accounts/projects/test-02/keystore/UTC--2015-08-24T21-32-04.748321142Z--0da70f43a568e88168436be52ed129f4a9bbdaf5
48
- tests/core/accounts/projects/test-03/geth/LOCK
49
- tests/core/accounts/projects/test-03/geth/nodekey
50
45
  tests/core/running/test_running_dev_chain.py
51
46
  tests/core/running/test_running_mainnet_chain.py
52
47
  tests/core/running/test_running_sepolia_chain.py
@@ -9,20 +9,20 @@ eval_type_backport>=0.1.0
9
9
 
10
10
  [dev]
11
11
  build>=0.9.0
12
- bumpversion>=0.5.3
12
+ bump_my_version>=0.19.0
13
13
  ipython
14
14
  mypy==1.10.0
15
15
  pre-commit>=3.4.0
16
16
  tox>=4.0.0
17
17
  twine
18
18
  wheel
19
- towncrier<22,>=21
19
+ towncrier<25,>=24
20
20
  flaky>=3.2.0
21
21
  pytest>=7.0.0
22
22
  pytest-xdist>=2.4.0
23
23
 
24
24
  [docs]
25
- towncrier<22,>=21
25
+ towncrier<25,>=24
26
26
 
27
27
  [test]
28
28
  flaky>=3.2.0
@@ -1,28 +1,31 @@
1
1
  [tool.autoflake]
2
- remove_all_unused_imports = true
3
2
  exclude = "__init__.py"
3
+ remove_all_unused_imports = true
4
4
 
5
5
  [tool.isort]
6
6
  combine_as_imports = true
7
7
  extra_standard_library = "pytest"
8
8
  force_grid_wrap = 1
9
9
  force_sort_within_sections = true
10
- known_third_party = "hypothesis,pytest"
10
+ force_to_top = "pytest"
11
+ honor_noqa = true
11
12
  known_first_party = "geth"
13
+ known_third_party = "hypothesis"
12
14
  multi_line_output = 3
13
15
  profile = "black"
16
+ use_parentheses = true
14
17
 
15
18
  [tool.mypy]
16
19
  check_untyped_defs = true
17
- disallow_incomplete_defs = true
18
- disallow_untyped_defs = true
19
20
  disallow_any_generics = true
21
+ disallow_incomplete_defs = true
22
+ disallow_subclassing_any = true
20
23
  disallow_untyped_calls = true
21
24
  disallow_untyped_decorators = true
22
- disallow_subclassing_any = true
25
+ disallow_untyped_defs = true
23
26
  ignore_missing_imports = true
24
- strict_optional = true
25
27
  strict_equality = true
28
+ strict_optional = true
26
29
  warn_redundant_casts = true
27
30
  warn_return_any = true
28
31
  warn_unused_configs = true
@@ -63,18 +66,18 @@ add-ignore = "D200,D203,D204,D205,D212,D302,D400,D401,D412,D415"
63
66
 
64
67
  [tool.pytest.ini_options]
65
68
  addopts = "-v --showlocals --durations 10"
66
- xfail_strict = true
67
- log_format = "%(levelname)8s %(asctime)s %(filename)20s %(message)s"
68
69
  log_date_format = "%m-%d %H:%M:%S"
70
+ log_format = "%(levelname)8s %(asctime)s %(filename)20s %(message)s"
71
+ xfail_strict = true
69
72
 
70
73
  [tool.towncrier]
71
74
  # Read https://github.com/ethereum/py-geth/blob/main/newsfragments/README.md for instructions
72
- package = "geth"
73
- filename = "CHANGELOG.rst"
74
75
  directory = "newsfragments"
75
- underlines = ["-", "~", "^"]
76
- title_format = "py-geth v{version} ({project_date})"
76
+ filename = "CHANGELOG.rst"
77
77
  issue_format = "`#{issue} <https://github.com/ethereum/py-geth/issues/{issue}>`__"
78
+ package = "geth"
79
+ title_format = "py-geth v{version} ({project_date})"
80
+ underlines = ["-", "~", "^"]
78
81
 
79
82
  [[tool.towncrier.type]]
80
83
  directory = "breaking"
@@ -120,3 +123,46 @@ showcontent = true
120
123
  directory = "removal"
121
124
  name = "Removals"
122
125
  showcontent = true
126
+
127
+ [tool.bumpversion]
128
+ current_version = "5.2.1"
129
+ parse = """
130
+ (?P<major>\\d+)
131
+ \\.(?P<minor>\\d+)
132
+ \\.(?P<patch>\\d+)
133
+ (-
134
+ (?P<stage>[^.]*)
135
+ \\.(?P<devnum>\\d+)
136
+ )?
137
+ """
138
+ serialize = [
139
+ "{major}.{minor}.{patch}-{stage}.{devnum}",
140
+ "{major}.{minor}.{patch}",
141
+ ]
142
+ search = "{current_version}"
143
+ replace = "{new_version}"
144
+ regex = false
145
+ ignore_missing_version = false
146
+ tag = true
147
+ sign_tags = true
148
+ tag_name = "v{new_version}"
149
+ tag_message = "Bump version: {current_version} → {new_version}"
150
+ allow_dirty = false
151
+ commit = true
152
+ message = "Bump version: {current_version} → {new_version}"
153
+
154
+ [tool.bumpversion.parts.stage]
155
+ optional_value = "stable"
156
+ first_value = "stable"
157
+ values = [
158
+ "alpha",
159
+ "beta",
160
+ "stable",
161
+ ]
162
+
163
+ [tool.bumpversion.part.devnum]
164
+
165
+ [[tool.bumpversion.files]]
166
+ filename = "setup.py"
167
+ search = "version=\"{current_version}\""
168
+ replace = "version=\"{new_version}\""
@@ -0,0 +1,50 @@
1
+ from pathlib import (
2
+ Path,
3
+ )
4
+ import subprocess
5
+ from tempfile import (
6
+ TemporaryDirectory,
7
+ )
8
+ import venv
9
+
10
+
11
+ def create_venv(parent_path: Path) -> Path:
12
+ venv_path = parent_path / "package-smoke-test"
13
+ venv.create(venv_path, with_pip=True)
14
+ subprocess.run(
15
+ [venv_path / "bin" / "pip", "install", "-U", "pip", "setuptools"], check=True
16
+ )
17
+ return venv_path
18
+
19
+
20
+ def find_wheel(project_path: Path) -> Path:
21
+ wheels = list(project_path.glob("dist/*.whl"))
22
+
23
+ if len(wheels) != 1:
24
+ raise Exception(
25
+ f"Expected one wheel. Instead found: {wheels} "
26
+ f"in project {project_path.absolute()}"
27
+ )
28
+
29
+ return wheels[0]
30
+
31
+
32
+ def install_wheel(venv_path: Path, wheel_path: Path) -> None:
33
+ subprocess.run(
34
+ [venv_path / "bin" / "pip", "install", f"{wheel_path}"],
35
+ check=True,
36
+ )
37
+
38
+
39
+ def test_install_local_wheel() -> None:
40
+ with TemporaryDirectory() as tmpdir:
41
+ venv_path = create_venv(Path(tmpdir))
42
+ wheel_path = find_wheel(Path("."))
43
+ install_wheel(venv_path, wheel_path)
44
+ print("Installed", wheel_path.absolute(), "to", venv_path)
45
+ print(f"Activate with `source {venv_path}/bin/activate`")
46
+ input("Press enter when the test has completed. The directory will be deleted.")
47
+
48
+
49
+ if __name__ == "__main__":
50
+ test_install_local_wheel()
@@ -7,7 +7,7 @@ from setuptools import (
7
7
  extras_require = {
8
8
  "dev": [
9
9
  "build>=0.9.0",
10
- "bumpversion>=0.5.3",
10
+ "bump_my_version>=0.19.0",
11
11
  "ipython",
12
12
  "mypy==1.10.0",
13
13
  "pre-commit>=3.4.0",
@@ -16,7 +16,7 @@ extras_require = {
16
16
  "wheel",
17
17
  ],
18
18
  "docs": [
19
- "towncrier>=21,<22",
19
+ "towncrier>=24,<25",
20
20
  ],
21
21
  "test": [
22
22
  "flaky>=3.2.0",
@@ -36,8 +36,8 @@ with open("./README.md") as readme:
36
36
 
37
37
  setup(
38
38
  name="py-geth",
39
- # *IMPORTANT*: Don't manually change the version here. Use the 'bumpversion' utility.
40
- version="5.1.0",
39
+ # *IMPORTANT*: Don't manually change the version here. Use the 'bump-my-version' utility.
40
+ version="5.2.1",
41
41
  description="""py-geth: Run Go-Ethereum as a subprocess""",
42
42
  long_description_content_type="text/markdown",
43
43
  long_description=long_description,
@@ -59,7 +59,7 @@ setup(
59
59
  license="MIT",
60
60
  zip_safe=False,
61
61
  keywords="ethereum go-ethereum geth",
62
- packages=find_packages(exclude=["tests", "tests.*"]),
62
+ packages=find_packages(exclude=["scripts", "scripts.*", "tests", "tests.*"]),
63
63
  package_data={"geth": ["py.typed"]},
64
64
  classifiers=[
65
65
  "Development Status :: 2 - Pre-Alpha",
@@ -72,5 +72,6 @@ setup(
72
72
  "Programming Language :: Python :: 3.10",
73
73
  "Programming Language :: Python :: 3.11",
74
74
  "Programming Language :: Python :: 3.12",
75
+ "Programming Language :: Python :: 3.13",
75
76
  ],
76
77
  )
@@ -1,6 +1,5 @@
1
- import os
2
-
3
1
  import pytest
2
+ import os
4
3
 
5
4
  PROJECTS_DIR = os.path.join(os.path.abspath(os.path.dirname(__file__)), "projects")
6
5
 
@@ -1,6 +1,5 @@
1
- import threading
2
-
3
1
  import pytest
2
+ import threading
4
3
 
5
4
  from geth import (
6
5
  DevGethProcess,
@@ -1,6 +1,5 @@
1
- import os
2
-
3
1
  import pytest
2
+ import os
4
3
 
5
4
  from geth.chain import (
6
5
  is_live_chain,
@@ -1,6 +1,5 @@
1
- import os
2
-
3
1
  import pytest
2
+ import os
4
3
 
5
4
  from geth.chain import (
6
5
  is_sepolia_chain,
@@ -2,13 +2,12 @@ from __future__ import (
2
2
  annotations,
3
3
  )
4
4
 
5
+ import pytest
5
6
  import sys
6
7
  from typing import (
7
8
  get_type_hints,
8
9
  )
9
10
 
10
- import pytest
11
-
12
11
  from geth.exceptions import (
13
12
  PyGethValueError,
14
13
  )
@@ -1,7 +1,8 @@
1
+ import pytest
2
+
1
3
  from flaky import (
2
4
  flaky,
3
5
  )
4
- import pytest
5
6
 
6
7
  from geth import (
7
8
  DevGethProcess,
@@ -1,7 +1,8 @@
1
+ import pytest
2
+
1
3
  from flaky import (
2
4
  flaky,
3
5
  )
4
- import pytest
5
6
 
6
7
  from geth import (
7
8
  DevGethProcess,
@@ -1 +0,0 @@
1
- bbcade0581fe7679e89f21946c728a382fc5b92d53bec428ad8111a39e382156
@@ -1 +0,0 @@
1
- e27339b80b7dd3658b4704d90bafeb87d52b69b2c781a33cec764d07a3995450
@@ -1 +0,0 @@
1
- cf767be1c9e7b8d7e7fe645c851122b1c1eca806f0fbab119793517a9644c670
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,6 +1,6 @@
1
+ import pytest
1
2
  import os
2
3
 
3
- import pytest
4
4
  import semantic_version
5
5
 
6
6
  from geth import (