frigid 4.3__tar.gz → 4.4__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: frigid
3
- Version: 4.3
3
+ Version: 4.4
4
4
  Summary: Immutable data structures.
5
5
  Project-URL: Homepage, https://github.com/emcd/python-frigid
6
6
  Project-URL: Documentation, https://emcd.github.io/python-frigid
@@ -15,17 +15,15 @@ Classifier: Development Status :: 5 - Production/Stable
15
15
  Classifier: Intended Audience :: Developers
16
16
  Classifier: License :: OSI Approved :: Apache Software License
17
17
  Classifier: Programming Language :: Python :: 3 :: Only
18
- Classifier: Programming Language :: Python :: 3.10
19
- Classifier: Programming Language :: Python :: 3.11
20
18
  Classifier: Programming Language :: Python :: 3.12
21
19
  Classifier: Programming Language :: Python :: 3.13
22
20
  Classifier: Programming Language :: Python :: 3.14
21
+ Classifier: Programming Language :: Python :: 3.15
23
22
  Classifier: Programming Language :: Python :: Implementation :: CPython
24
- Classifier: Programming Language :: Python :: Implementation :: PyPy
25
23
  Classifier: Topic :: Software Development
26
- Requires-Python: >=3.10
24
+ Requires-Python: >=3.12
27
25
  Requires-Dist: absence~=1.1
28
- Requires-Dist: classcore~=1.12
26
+ Requires-Dist: classcore~=1.14
29
27
  Requires-Dist: dynadoc~=1.4
30
28
  Requires-Dist: typing-extensions
31
29
  Description-Content-Type: text/x-rst
@@ -13,10 +13,10 @@ description = 'Immutable data structures.'
13
13
  dynamic = [ 'version' ]
14
14
  license = 'Apache-2.0'
15
15
  readme = { 'file' = 'README.rst', 'content-type' = 'text/x-rst' }
16
- requires-python = '>= 3.10'
16
+ requires-python = '>= 3.12'
17
17
  dependencies = [
18
18
  'absence~=1.1',
19
- 'classcore~=1.12',
19
+ 'classcore~=1.14',
20
20
  'dynadoc~=1.4',
21
21
  'typing-extensions',
22
22
  # --- BEGIN: Injected by Copier ---
@@ -28,13 +28,11 @@ classifiers = [ # https://pypi.org/classifiers
28
28
  'License :: OSI Approved :: Apache Software License',
29
29
  'Programming Language :: Python :: 3 :: Only',
30
30
  # --- BEGIN: Injected by Copier ---
31
- 'Programming Language :: Python :: 3.10',
32
- 'Programming Language :: Python :: 3.11',
33
31
  'Programming Language :: Python :: 3.12',
34
32
  'Programming Language :: Python :: 3.13',
35
33
  'Programming Language :: Python :: 3.14',
34
+ 'Programming Language :: Python :: 3.15',
36
35
  'Programming Language :: Python :: Implementation :: CPython',
37
- 'Programming Language :: Python :: Implementation :: PyPy',
38
36
  # --- END: Injected by Copier ---
39
37
  'Topic :: Software Development',
40
38
  ]
@@ -93,12 +91,13 @@ strict-naming = false
93
91
  # --- BEGIN: Injected by Copier ---
94
92
  # --- END: Injected by Copier ---
95
93
  [tool.hatch.envs.default]
96
- python = '3.10'
94
+ python = '3.12'
97
95
  [tool.hatch.envs.develop]
98
96
  description = ''' Development environment. '''
99
97
  builder = true
100
98
  dependencies = [
101
99
  'coverage[toml]',
100
+ 'emcd-vibe-linter~=1.0a2',
102
101
  'furo',
103
102
  'isort',
104
103
  'myst-parser',
@@ -129,6 +128,12 @@ docsgen = [
129
128
  """sphinx-build -a -d .auxiliary/caches/sphinx --quiet \
130
129
  documentation .auxiliary/artifacts/sphinx-html""",
131
130
  ]
131
+ fragments = [
132
+ """python .auxiliary/scripts/validate-fragments.py""",
133
+ ]
134
+ module-sizes = [
135
+ """python .auxiliary/scripts/validate-module-sizes.py""",
136
+ ]
132
137
  linters = [
133
138
  """ruff check --quiet sources documentation tests""",
134
139
  """vibelinter check""",
@@ -136,6 +141,8 @@ linters = [
136
141
  # --- END: Injected by Copier ---
137
142
  """isort --check-only --diff sources tests""",
138
143
  """pyright sources""",
144
+ 'fragments',
145
+ 'module-sizes',
139
146
  ]
140
147
  packagers = [
141
148
  """hatch build""",
@@ -172,12 +179,10 @@ description = ''' Quality assurance environment. '''
172
179
  template = 'develop'
173
180
  [[tool.hatch.envs.qa.matrix]]
174
181
  python = [
175
- '3.10',
176
- '3.11',
177
182
  '3.12',
178
183
  '3.13',
179
184
  '3.14',
180
- 'pypy3.11',
185
+ '3.15',
181
186
  ]
182
187
  [tool.hatch.version]
183
188
  path = 'sources/frigid/__init__.py'
@@ -32,9 +32,11 @@ from classcore.standard.nomina import ( # isort: skip
32
32
  DecorationPreparers as ClassDecorationPreparers,
33
33
  DynadocConfiguration,
34
34
  ModuleReclassifier,
35
+ abc_class_mutables,
35
36
  concealment_label,
36
37
  immutability_label,
37
38
  is_public_identifier,
39
+ typing_class_mutables,
38
40
  )
39
41
 
40
42
  from . import imports as __
@@ -40,7 +40,7 @@ from .sequences import *
40
40
 
41
41
 
42
42
  __version__: __.typx.Annotated[ str, __.ddoc.Visibilities.Reveal ]
43
- __version__ = '4.3'
43
+ __version__ = '4.4'
44
44
 
45
45
 
46
46
  finalize_module( __name__, dynadoc_table = __.fragments, recursive = True )
@@ -26,12 +26,6 @@
26
26
  from . import __
27
27
 
28
28
 
29
- abc_class_mutables = (
30
- '_abc_cache',
31
- '_abc_negative_cache',
32
- '_abc_negative_cache_version',
33
- '_abc_registry',
34
- )
35
29
  is_public_identifier = __.is_public_identifier
36
30
  mutables_default = ( )
37
31
  visibles_default = ( is_public_identifier, )
@@ -239,7 +233,7 @@ class DataclassObjectMutable( metaclass = DataclassMutable ):
239
233
  class Protocol(
240
234
  __.typx.Protocol,
241
235
  metaclass = ProtocolClass,
242
- class_mutables = abc_class_mutables,
236
+ class_mutables = ( *__.abc_class_mutables, *__.typing_class_mutables ),
243
237
  ):
244
238
  ''' Standard base protocol class. '''
245
239
 
@@ -252,7 +246,7 @@ class Protocol(
252
246
  class ProtocolMutable(
253
247
  __.typx.Protocol,
254
248
  metaclass = ProtocolClass,
255
- class_mutables = abc_class_mutables,
249
+ class_mutables = ( *__.abc_class_mutables, *__.typing_class_mutables ),
256
250
  instances_mutables = '*',
257
251
  ):
258
252
  ''' Base protocol class with mutable instance attributes. '''
@@ -266,7 +260,7 @@ class ProtocolMutable(
266
260
  class DataclassProtocol(
267
261
  __.typx.Protocol,
268
262
  metaclass = ProtocolDataclass,
269
- class_mutables = abc_class_mutables,
263
+ class_mutables = ( *__.abc_class_mutables, *__.typing_class_mutables ),
270
264
  ):
271
265
  ''' Standard base protocol dataclass. '''
272
266
 
@@ -279,7 +273,7 @@ class DataclassProtocol(
279
273
  class DataclassProtocolMutable(
280
274
  __.typx.Protocol,
281
275
  metaclass = ProtocolDataclassMutable,
282
- class_mutables = abc_class_mutables,
276
+ class_mutables = ( *__.abc_class_mutables, *__.typing_class_mutables ),
283
277
  ):
284
278
  ''' Base protocol dataclass with mutable instance attributes. '''
285
279
 
@@ -168,7 +168,7 @@ class _DictionaryOperations( AbstractDictionary[ __.H, __.V ] ):
168
168
  class Dictionary( # noqa: PLW1641
169
169
  _DictionaryOperations[ __.H, __.V ],
170
170
  metaclass = _classes.AbstractBaseClass,
171
- class_mutables = _classes.abc_class_mutables,
171
+ class_mutables = __.abc_class_mutables,
172
172
  ):
173
173
  ''' Immutable dictionary. '''
174
174
 
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