bigraph-schema 0.0.65__tar.gz → 0.0.71__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.
Potentially problematic release.
This version of bigraph-schema might be problematic. Click here for more details.
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/.gitignore +1 -0
- {bigraph-schema-0.0.65/bigraph_schema.egg-info → bigraph_schema-0.0.71}/PKG-INFO +13 -14
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema/edge.py +28 -4
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema/tests.py +67 -38
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema/type_system.py +12 -12
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71/bigraph_schema.egg-info}/PKG-INFO +13 -14
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema.egg-info/requires.txt +3 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/pyproject.toml +4 -1
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/release.sh +7 -7
- bigraph_schema-0.0.71/setup.py +15 -0
- bigraph-schema-0.0.65/setup.py +0 -42
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/.github/workflows/notebook_to_html.yml +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/.github/workflows/pytest.yml +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/AUTHORS.md +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/CLA.md +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/CODE_OF_CONDUCT.md +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/CONTRIBUTING.md +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/LICENSE +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/README.md +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema/__init__.py +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema/parse.py +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema/protocols.py +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema/registry.py +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema/type_functions.py +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema/type_system_adjunct.py +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema/units.py +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema/utilities.py +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema.egg-info/SOURCES.txt +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema.egg-info/dependency_links.txt +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema.egg-info/top_level.txt +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/notebooks/core.ipynb +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/notebooks/demo.ipynb +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/notebooks/images/place-link.png +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/notebooks/images/reaction-after.png +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/notebooks/images/reaction-before.png +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/notebooks/images/redex-reactum.png +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/pytest.ini +0 -0
- {bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/setup.cfg +0 -0
|
@@ -1,24 +1,23 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: bigraph-schema
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.71
|
|
4
4
|
Summary: A serializable type schema for compositional systems biology
|
|
5
|
-
Home-page: https://github.com/vivarium-collective/bigraph-schema
|
|
6
5
|
Author: Eran Agmon, Ryan Spangler
|
|
7
|
-
Author-email: agmon.eran@gmail.com, ryan.spangler@gmail.com
|
|
8
|
-
Classifier: Development Status :: 3 - Alpha
|
|
9
|
-
Classifier: Intended Audience :: Developers
|
|
10
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
-
Classifier: Operating System :: OS Independent
|
|
12
|
-
Classifier: Programming Language :: Python
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
18
6
|
Requires-Python: >=3.7
|
|
19
7
|
Description-Content-Type: text/markdown
|
|
20
8
|
License-File: LICENSE
|
|
21
9
|
License-File: AUTHORS.md
|
|
10
|
+
Requires-Dist: fire
|
|
11
|
+
Requires-Dist: numpy
|
|
12
|
+
Requires-Dist: orjson
|
|
13
|
+
Requires-Dist: parsimonious
|
|
14
|
+
Requires-Dist: pint
|
|
15
|
+
Requires-Dist: plum-dispatch
|
|
16
|
+
Requires-Dist: pytest
|
|
17
|
+
Requires-Dist: requests>=2.31.0
|
|
18
|
+
Requires-Dist: setuptools
|
|
19
|
+
Requires-Dist: twine>=4.0.2
|
|
20
|
+
Dynamic: license-file
|
|
22
21
|
|
|
23
22
|
# Bigraph-schema
|
|
24
23
|
|
|
@@ -46,11 +46,35 @@ class Edge:
|
|
|
46
46
|
if config is None:
|
|
47
47
|
config = {}
|
|
48
48
|
|
|
49
|
-
self.
|
|
50
|
-
self.
|
|
49
|
+
self._config = self.core.fill(self.config_schema, config)
|
|
50
|
+
self._composition = 'edge'
|
|
51
|
+
self._state = {}
|
|
51
52
|
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
self.initialize(self._config)
|
|
54
|
+
|
|
55
|
+
@property
|
|
56
|
+
def config(self):
|
|
57
|
+
return self._config
|
|
58
|
+
|
|
59
|
+
@config.setter
|
|
60
|
+
def config(self, config):
|
|
61
|
+
self._config = config
|
|
62
|
+
|
|
63
|
+
@property
|
|
64
|
+
def composition(self):
|
|
65
|
+
return self._composition
|
|
66
|
+
|
|
67
|
+
@composition.setter
|
|
68
|
+
def composition(self, composition):
|
|
69
|
+
self._composition = composition
|
|
70
|
+
|
|
71
|
+
@property
|
|
72
|
+
def state(self):
|
|
73
|
+
return self._state
|
|
74
|
+
|
|
75
|
+
@state.setter
|
|
76
|
+
def state(self, state):
|
|
77
|
+
self._state = state
|
|
54
78
|
|
|
55
79
|
def initialize(self, config):
|
|
56
80
|
"""Optional hook for subclass-specific initialization."""
|
|
@@ -77,6 +77,8 @@ def register_cube(core):
|
|
|
77
77
|
def test_basic_types(core):
|
|
78
78
|
assert core.find('integer')
|
|
79
79
|
assert core.find('cube')['depth']['_type'] == 'integer'
|
|
80
|
+
# inheritance
|
|
81
|
+
assert core.find('cube')['width']['_type'] == 'integer'
|
|
80
82
|
|
|
81
83
|
|
|
82
84
|
def test_update_types(core):
|
|
@@ -85,6 +87,11 @@ def test_update_types(core):
|
|
|
85
87
|
core.update_types({'A': {'_description':desc}})
|
|
86
88
|
assert core.access('A') == {'_type': 'payload', '_description': desc}
|
|
87
89
|
|
|
90
|
+
core.update_types({'B': "alternate", 'C': "tertiary"})
|
|
91
|
+
assert core.access('A') == {'_type': 'payload', '_description': desc}
|
|
92
|
+
assert core.access('B') == {'_type': 'alternate'}
|
|
93
|
+
assert core.access('C') == {'_type': 'tertiary'}
|
|
94
|
+
|
|
88
95
|
|
|
89
96
|
def test_reregister_type(core):
|
|
90
97
|
"""
|
|
@@ -92,15 +99,15 @@ def test_reregister_type(core):
|
|
|
92
99
|
|
|
93
100
|
it replaces the schema if not strict
|
|
94
101
|
"""
|
|
95
|
-
core.register('
|
|
102
|
+
core.register('R_A', {'_default': 'a'})
|
|
96
103
|
with pytest.raises(Exception) as e:
|
|
97
104
|
core.register(
|
|
98
|
-
'
|
|
105
|
+
'R_A', {'_default': 'b'},
|
|
99
106
|
strict=True)
|
|
100
107
|
|
|
101
|
-
core.register('
|
|
108
|
+
core.register('R_A', {'_default': 'b'}, strict=False)
|
|
102
109
|
|
|
103
|
-
assert core.access('
|
|
110
|
+
assert core.access('R_A')['_default'] == 'b'
|
|
104
111
|
|
|
105
112
|
|
|
106
113
|
def test_merge_schemas(core):
|
|
@@ -161,37 +168,36 @@ def test_apply_update(core):
|
|
|
161
168
|
assert new_state['depth'] == 39
|
|
162
169
|
|
|
163
170
|
|
|
164
|
-
def
|
|
171
|
+
def check_validation(core, library, print_log=False):
|
|
165
172
|
"""
|
|
166
173
|
validate_schema returns nothing for a valid schema declaration
|
|
167
174
|
|
|
168
175
|
this helper function makes clearer reports out of the test
|
|
169
176
|
failures
|
|
177
|
+
"""
|
|
178
|
+
for key, declaration in library.items():
|
|
179
|
+
errors = core.validate_schema(declaration)
|
|
180
|
+
assert len(errors) == 0, {'key': key, 'declaration': declaration}
|
|
181
|
+
if print_log:
|
|
182
|
+
print(f'PASS: valid schema {key}')
|
|
183
|
+
pprint.pprint(declaration)
|
|
184
|
+
|
|
170
185
|
|
|
171
|
-
|
|
172
|
-
|
|
186
|
+
def check_nonvalidation(core, library, print_log=False):
|
|
187
|
+
"""
|
|
188
|
+
like check_validation but expects one or more errors
|
|
173
189
|
"""
|
|
174
190
|
for key, declaration in library.items():
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
pprint.pprint(declaration)
|
|
181
|
-
else:
|
|
182
|
-
raise Exception(f'FAIL: {message}\n{declaration}\n{report}')
|
|
183
|
-
else:
|
|
184
|
-
message = f'invalid schema: {key}'
|
|
185
|
-
if not should_pass:
|
|
186
|
-
print(f'PASS: {message}')
|
|
187
|
-
pprint.pprint(declaration)
|
|
188
|
-
else:
|
|
189
|
-
raise Exception(f'FAIL: {message}\n{declaration}\n{report}')
|
|
191
|
+
errors = core.validate_schema(declaration)
|
|
192
|
+
assert len(errors) != 0, {'key': key, 'declaration': declaration}
|
|
193
|
+
if print_log:
|
|
194
|
+
print(f'PASS: invalid schema {key}')
|
|
195
|
+
pprint.pprint(declaration)
|
|
190
196
|
|
|
191
197
|
|
|
192
198
|
def test_validate_schema(core):
|
|
193
199
|
# good schemas
|
|
194
|
-
|
|
200
|
+
check_validation(core, base_types)
|
|
195
201
|
|
|
196
202
|
good = {
|
|
197
203
|
'not quite int': {
|
|
@@ -215,6 +221,7 @@ def test_validate_schema(core):
|
|
|
215
221
|
}
|
|
216
222
|
}
|
|
217
223
|
}
|
|
224
|
+
check_validation(core, good)
|
|
218
225
|
|
|
219
226
|
# bad schemas
|
|
220
227
|
bad = {
|
|
@@ -225,11 +232,9 @@ def test_validate_schema(core):
|
|
|
225
232
|
'right': {'_default': 1, '_apply': accumulate},
|
|
226
233
|
},
|
|
227
234
|
}
|
|
228
|
-
|
|
235
|
+
check_nonvalidation(core, bad)
|
|
229
236
|
# test for ports and wires mismatch
|
|
230
237
|
|
|
231
|
-
print_schema_validation(core, good, True)
|
|
232
|
-
print_schema_validation(core, bad, False)
|
|
233
238
|
|
|
234
239
|
|
|
235
240
|
def test_fill_integer(core):
|
|
@@ -344,14 +349,21 @@ def test_fill_from_parse(core):
|
|
|
344
349
|
'O': ['a']}}}
|
|
345
350
|
|
|
346
351
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
352
|
+
def test_fill_in_disconnected_port(core):
|
|
353
|
+
test_schema = {
|
|
354
|
+
'edge1': {
|
|
355
|
+
'_type': 'edge',
|
|
356
|
+
'_ports': {
|
|
357
|
+
'1': {'_type': 'float'}}}}
|
|
353
358
|
|
|
354
|
-
|
|
359
|
+
test_state = {
|
|
360
|
+
# TODO - js - how do I represent non connection, rather
|
|
361
|
+
# than a connection with an empty value?
|
|
362
|
+
'edge1': {}}
|
|
363
|
+
|
|
364
|
+
filled = core.fill(
|
|
365
|
+
test_schema,
|
|
366
|
+
test_state)
|
|
355
367
|
|
|
356
368
|
|
|
357
369
|
# def test_fill_type_mismatch(core):
|
|
@@ -366,6 +378,14 @@ def test_fill_from_parse(core):
|
|
|
366
378
|
# '1': ['..', 'a'],
|
|
367
379
|
# '2': ['a']},
|
|
368
380
|
# 'a': 5}}
|
|
381
|
+
#
|
|
382
|
+
# test_state = {
|
|
383
|
+
# 'edge1': {},
|
|
384
|
+
# 'a': 2}
|
|
385
|
+
#
|
|
386
|
+
# filled = core.fill(
|
|
387
|
+
# test_schema,
|
|
388
|
+
# test_state)
|
|
369
389
|
|
|
370
390
|
|
|
371
391
|
# def test_edge_type_mismatch(core):
|
|
@@ -749,7 +769,7 @@ def test_project(core):
|
|
|
749
769
|
'2': 'a0>a0.1',
|
|
750
770
|
'3': 'a0>a0.2>a0.2.0'}
|
|
751
771
|
|
|
752
|
-
# TODO: support separate schema/instance, and
|
|
772
|
+
# TODO: support separate schema/instance, and
|
|
753
773
|
# instances with '_type' and type parameter keys
|
|
754
774
|
# TODO: support overriding various type methods
|
|
755
775
|
instance = {
|
|
@@ -2140,7 +2160,7 @@ def test_dataclass(core):
|
|
|
2140
2160
|
|
|
2141
2161
|
complex_dict = asdict(complex_from)
|
|
2142
2162
|
|
|
2143
|
-
# assert complex_dict == complex_state ?
|
|
2163
|
+
# assert complex_dict == complex_state ?
|
|
2144
2164
|
|
|
2145
2165
|
assert complex_from.a['x']['oooo'] is None
|
|
2146
2166
|
assert len(complex_from.c.d['A']['inputs']['GGG'])
|
|
@@ -2350,7 +2370,7 @@ def test_edge_cycle(core):
|
|
|
2350
2370
|
assert key in result
|
|
2351
2371
|
|
|
2352
2372
|
|
|
2353
|
-
def
|
|
2373
|
+
def test_merge2(core):
|
|
2354
2374
|
schema = {
|
|
2355
2375
|
'A': 'float',
|
|
2356
2376
|
'B': 'enum[one,two,three]',
|
|
@@ -2422,6 +2442,7 @@ def test_update_removed(core):
|
|
|
2422
2442
|
'c': 13.33333333}
|
|
2423
2443
|
|
|
2424
2444
|
|
|
2445
|
+
# TODO fix this test
|
|
2425
2446
|
def fix_test_slice_edge(core):
|
|
2426
2447
|
initial_schema = {
|
|
2427
2448
|
'edge': {
|
|
@@ -2460,6 +2481,7 @@ def fix_test_slice_edge(core):
|
|
|
2460
2481
|
assert inner_state == 55555
|
|
2461
2482
|
|
|
2462
2483
|
|
|
2484
|
+
# TODO fix this test
|
|
2463
2485
|
def fix_test_complex_wiring(core):
|
|
2464
2486
|
initial_schema = {
|
|
2465
2487
|
'edge': {
|
|
@@ -2545,6 +2567,7 @@ if __name__ == '__main__':
|
|
|
2545
2567
|
core = register_test_types(core)
|
|
2546
2568
|
|
|
2547
2569
|
test_basic_types(core)
|
|
2570
|
+
test_update_types(core)
|
|
2548
2571
|
test_reregister_type(core)
|
|
2549
2572
|
test_generate_default(core)
|
|
2550
2573
|
test_apply_update(core)
|
|
@@ -2554,6 +2577,7 @@ if __name__ == '__main__':
|
|
|
2554
2577
|
test_establish_path(core)
|
|
2555
2578
|
test_overwrite_existing(core)
|
|
2556
2579
|
test_fill_in_missing_nodes(core)
|
|
2580
|
+
test_fill_in_disconnected_port(core)
|
|
2557
2581
|
test_fill_from_parse(core)
|
|
2558
2582
|
test_fill_ports(core)
|
|
2559
2583
|
test_expected_schema(core)
|
|
@@ -2561,12 +2585,12 @@ if __name__ == '__main__':
|
|
|
2561
2585
|
test_serialize_deserialize(core)
|
|
2562
2586
|
test_project(core)
|
|
2563
2587
|
test_inherits_from(core)
|
|
2588
|
+
test_check(core)
|
|
2564
2589
|
test_apply_schema(core)
|
|
2565
2590
|
test_resolve_schemas(core)
|
|
2566
2591
|
test_add_reaction(core)
|
|
2567
2592
|
test_remove_reaction(core)
|
|
2568
2593
|
test_replace_reaction(core)
|
|
2569
|
-
test_unit_conversion(core)
|
|
2570
2594
|
test_map_type(core)
|
|
2571
2595
|
test_tree_type(core)
|
|
2572
2596
|
test_maybe_type(core)
|
|
@@ -2581,8 +2605,10 @@ if __name__ == '__main__':
|
|
|
2581
2605
|
test_foursquare(core)
|
|
2582
2606
|
test_divide(core)
|
|
2583
2607
|
test_merge(core)
|
|
2608
|
+
test_merge2(core)
|
|
2584
2609
|
test_bind(core)
|
|
2585
2610
|
test_slice(core)
|
|
2611
|
+
test_star_path(core)
|
|
2586
2612
|
test_set_slice(core)
|
|
2587
2613
|
test_dataclass(core)
|
|
2588
2614
|
test_enum_type(core)
|
|
@@ -2590,7 +2616,6 @@ if __name__ == '__main__':
|
|
|
2590
2616
|
test_representation(core)
|
|
2591
2617
|
test_generate(core)
|
|
2592
2618
|
test_edge_cycle(core)
|
|
2593
|
-
test_merge(core)
|
|
2594
2619
|
test_remove_omitted(core)
|
|
2595
2620
|
test_union_key_error(core)
|
|
2596
2621
|
test_tree_equivalence(core)
|
|
@@ -2598,5 +2623,9 @@ if __name__ == '__main__':
|
|
|
2598
2623
|
test_update_removed(core)
|
|
2599
2624
|
test_merge_schemas(core)
|
|
2600
2625
|
|
|
2626
|
+
# test_reaction(core)
|
|
2627
|
+
# test_link_place(core)
|
|
2628
|
+
# test_unit_conversion(core)
|
|
2601
2629
|
# test_slice_edge(core)
|
|
2602
2630
|
# test_complex_wiring(core)
|
|
2631
|
+
# test_fill_type_mismatch(core)
|
|
@@ -478,11 +478,11 @@ class TypeSystem(Registry):
|
|
|
478
478
|
|
|
479
479
|
|
|
480
480
|
def _parameters_for(self, initial_schema):
|
|
481
|
-
|
|
481
|
+
"""
|
|
482
482
|
find any type parameters for this schema if they are present
|
|
483
483
|
|
|
484
484
|
helper for type_functions
|
|
485
|
-
|
|
485
|
+
"""
|
|
486
486
|
|
|
487
487
|
if '_type_parameters' in initial_schema:
|
|
488
488
|
schema = initial_schema
|
|
@@ -507,9 +507,9 @@ class TypeSystem(Registry):
|
|
|
507
507
|
|
|
508
508
|
|
|
509
509
|
def default(self, schema):
|
|
510
|
-
|
|
510
|
+
"""
|
|
511
511
|
produce the default value for the provided schema
|
|
512
|
-
|
|
512
|
+
"""
|
|
513
513
|
|
|
514
514
|
default = None
|
|
515
515
|
found = self.retrieve(schema)
|
|
@@ -565,10 +565,10 @@ class TypeSystem(Registry):
|
|
|
565
565
|
|
|
566
566
|
|
|
567
567
|
def choose_method(self, schema, state, method_name):
|
|
568
|
-
|
|
568
|
+
"""
|
|
569
569
|
find in the provided state, or schema if not there,
|
|
570
570
|
a method for the given method_name
|
|
571
|
-
|
|
571
|
+
"""
|
|
572
572
|
|
|
573
573
|
method_key = f'_{method_name}'
|
|
574
574
|
found = None
|
|
@@ -601,10 +601,10 @@ class TypeSystem(Registry):
|
|
|
601
601
|
|
|
602
602
|
|
|
603
603
|
def slice(self, schema, state, path):
|
|
604
|
-
|
|
604
|
+
"""
|
|
605
605
|
find the subschema and substate at a node in the place graph
|
|
606
606
|
given by the provided path
|
|
607
|
-
|
|
607
|
+
"""
|
|
608
608
|
|
|
609
609
|
if not isinstance(path, (list, tuple)):
|
|
610
610
|
path = [path]
|
|
@@ -1077,10 +1077,10 @@ class TypeSystem(Registry):
|
|
|
1077
1077
|
|
|
1078
1078
|
|
|
1079
1079
|
def set_slice(self, schema, state, path, target_schema, target_state, defer=False):
|
|
1080
|
-
|
|
1080
|
+
"""
|
|
1081
1081
|
Makes a local modification to the schema/state at the path, and
|
|
1082
1082
|
returns the top_schema and top_state
|
|
1083
|
-
|
|
1083
|
+
"""
|
|
1084
1084
|
|
|
1085
1085
|
path = resolve_path(path)
|
|
1086
1086
|
|
|
@@ -1633,11 +1633,11 @@ class TypeSystem(Registry):
|
|
|
1633
1633
|
return method
|
|
1634
1634
|
|
|
1635
1635
|
def representation(self, schema, path=None, parents=None):
|
|
1636
|
-
|
|
1636
|
+
"""
|
|
1637
1637
|
produce a string representation of the schema
|
|
1638
1638
|
|
|
1639
1639
|
* intended to be the inverse of parse_expression()
|
|
1640
|
-
|
|
1640
|
+
"""
|
|
1641
1641
|
|
|
1642
1642
|
path = path or []
|
|
1643
1643
|
parents = parents or []
|
|
@@ -1,24 +1,23 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: bigraph-schema
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.71
|
|
4
4
|
Summary: A serializable type schema for compositional systems biology
|
|
5
|
-
Home-page: https://github.com/vivarium-collective/bigraph-schema
|
|
6
5
|
Author: Eran Agmon, Ryan Spangler
|
|
7
|
-
Author-email: agmon.eran@gmail.com, ryan.spangler@gmail.com
|
|
8
|
-
Classifier: Development Status :: 3 - Alpha
|
|
9
|
-
Classifier: Intended Audience :: Developers
|
|
10
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
11
|
-
Classifier: Operating System :: OS Independent
|
|
12
|
-
Classifier: Programming Language :: Python
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
18
6
|
Requires-Python: >=3.7
|
|
19
7
|
Description-Content-Type: text/markdown
|
|
20
8
|
License-File: LICENSE
|
|
21
9
|
License-File: AUTHORS.md
|
|
10
|
+
Requires-Dist: fire
|
|
11
|
+
Requires-Dist: numpy
|
|
12
|
+
Requires-Dist: orjson
|
|
13
|
+
Requires-Dist: parsimonious
|
|
14
|
+
Requires-Dist: pint
|
|
15
|
+
Requires-Dist: plum-dispatch
|
|
16
|
+
Requires-Dist: pytest
|
|
17
|
+
Requires-Dist: requests>=2.31.0
|
|
18
|
+
Requires-Dist: setuptools
|
|
19
|
+
Requires-Dist: twine>=4.0.2
|
|
20
|
+
Dynamic: license-file
|
|
22
21
|
|
|
23
22
|
# Bigraph-schema
|
|
24
23
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "bigraph-schema"
|
|
3
|
-
version = "0.0.
|
|
3
|
+
version = "0.0.71"
|
|
4
4
|
description = "A serializable type schema for compositional systems biology"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.7"
|
|
@@ -16,6 +16,9 @@ dependencies = [
|
|
|
16
16
|
"pint",
|
|
17
17
|
"plum-dispatch",
|
|
18
18
|
"pytest",
|
|
19
|
+
"requests>=2.31.0",
|
|
20
|
+
"setuptools",
|
|
21
|
+
"twine>=4.0.2",
|
|
19
22
|
]
|
|
20
23
|
|
|
21
24
|
[tool.setuptools]
|
|
@@ -8,13 +8,13 @@ set -e
|
|
|
8
8
|
|
|
9
9
|
version="$1"
|
|
10
10
|
|
|
11
|
-
# Check version is valid
|
|
12
|
-
setup_py_version="$(python setup.py --version)"
|
|
13
|
-
if [ "$setup_py_version" != "$version" ]; then
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
fi
|
|
11
|
+
# # Check version is valid
|
|
12
|
+
# setup_py_version="$(python setup.py --version)"
|
|
13
|
+
# if [ "$setup_py_version" != "$version" ]; then
|
|
14
|
+
# echo "setup.py has version $setup_py_version, not $version."
|
|
15
|
+
# echo "Aborting."
|
|
16
|
+
# exit 1
|
|
17
|
+
# fi
|
|
18
18
|
|
|
19
19
|
# Check working directory is clean
|
|
20
20
|
if [ ! -z "$(git status --untracked-files=no --porcelain)" ]; then
|
bigraph-schema-0.0.65/setup.py
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
from setuptools import setup, find_packages
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
VERSION = '0.0.65'
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
with open("README.md", "r") as readme:
|
|
8
|
-
description = readme.read()
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
setup(
|
|
12
|
-
name="bigraph-schema",
|
|
13
|
-
version=VERSION,
|
|
14
|
-
author="Eran Agmon, Ryan Spangler",
|
|
15
|
-
author_email="agmon.eran@gmail.com, ryan.spangler@gmail.com",
|
|
16
|
-
description="A serializable type schema for compositional systems biology",
|
|
17
|
-
long_description=description,
|
|
18
|
-
long_description_content_type="text/markdown",
|
|
19
|
-
url="https://github.com/vivarium-collective/bigraph-schema",
|
|
20
|
-
packages=find_packages(),
|
|
21
|
-
classifiers=[
|
|
22
|
-
"Development Status :: 3 - Alpha",
|
|
23
|
-
"Intended Audience :: Developers",
|
|
24
|
-
"License :: OSI Approved :: MIT License",
|
|
25
|
-
"Operating System :: OS Independent",
|
|
26
|
-
"Programming Language :: Python",
|
|
27
|
-
"Programming Language :: Python :: 3.7",
|
|
28
|
-
"Programming Language :: Python :: 3.8",
|
|
29
|
-
"Programming Language :: Python :: 3.9",
|
|
30
|
-
"Programming Language :: Python :: 3.10",
|
|
31
|
-
"Programming Language :: Python :: 3.11",
|
|
32
|
-
],
|
|
33
|
-
python_requires=">=3.7",
|
|
34
|
-
install_requires=[
|
|
35
|
-
# List your package dependencies here
|
|
36
|
-
"numpy",
|
|
37
|
-
"parsimonious",
|
|
38
|
-
"fire",
|
|
39
|
-
"pytest",
|
|
40
|
-
"pint",
|
|
41
|
-
],
|
|
42
|
-
)
|
|
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
|
|
File without changes
|
{bigraph-schema-0.0.65 → bigraph_schema-0.0.71}/bigraph_schema.egg-info/dependency_links.txt
RENAMED
|
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
|