openepd 1.3.0__py3-none-any.whl → 1.3.2__py3-none-any.whl
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.
- openepd/__init__.py +1 -1
- openepd/__version__.py +2 -2
- openepd/api/__init__.py +1 -1
- openepd/api/base_sync_client.py +12 -5
- openepd/api/category/__init__.py +1 -1
- openepd/api/category/dto.py +1 -1
- openepd/api/category/sync_api.py +1 -1
- openepd/api/common.py +1 -1
- openepd/api/dto/__init__.py +1 -1
- openepd/api/dto/base.py +1 -1
- openepd/api/dto/common.py +1 -1
- openepd/api/dto/meta.py +1 -1
- openepd/api/dto/mf.py +1 -1
- openepd/api/dto/params.py +1 -1
- openepd/api/epd/__init__.py +1 -1
- openepd/api/epd/dto.py +1 -1
- openepd/api/epd/sync_api.py +1 -1
- openepd/api/errors.py +1 -1
- openepd/api/pcr/__init__.py +1 -1
- openepd/api/pcr/dto.py +1 -1
- openepd/api/pcr/sync_api.py +1 -1
- openepd/api/sync_client.py +1 -1
- openepd/api/test/__init__.py +1 -1
- openepd/bundle/__init__.py +1 -1
- openepd/bundle/base.py +1 -1
- openepd/bundle/model.py +1 -1
- openepd/bundle/reader.py +1 -1
- openepd/bundle/writer.py +3 -2
- openepd/model/__init__.py +1 -1
- openepd/model/base.py +1 -1
- openepd/model/category.py +1 -1
- openepd/model/common.py +1 -1
- openepd/model/epd.py +1 -1
- openepd/model/lcia.py +1 -1
- openepd/model/org.py +1 -1
- openepd/model/pcr.py +1 -1
- openepd/model/specs/__init__.py +1 -1
- openepd/model/specs/concrete.py +1 -1
- openepd/model/standard.py +1 -1
- {openepd-1.3.0.dist-info → openepd-1.3.2.dist-info}/METADATA +2 -2
- openepd-1.3.2.dist-info/RECORD +44 -0
- openepd-1.3.0.dist-info/RECORD +0 -44
- {openepd-1.3.0.dist-info → openepd-1.3.2.dist-info}/LICENSE +0 -0
- {openepd-1.3.0.dist-info → openepd-1.3.2.dist-info}/WHEEL +0 -0
openepd/__init__.py
CHANGED
openepd/__version__.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright
|
2
|
+
# Copyright 2024 by C Change Labs Inc. www.c-change-labs.com
|
3
3
|
#
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
5
|
# you may not use this file except in compliance with the License.
|
@@ -17,4 +17,4 @@
|
|
17
17
|
# Charles Pankow Foundation, Microsoft Sustainability Fund, Interface, MKA Foundation, and others.
|
18
18
|
# Find out more at www.BuildingTransparency.org
|
19
19
|
#
|
20
|
-
VERSION = "1.3.
|
20
|
+
VERSION = "1.3.2"
|
openepd/api/__init__.py
CHANGED
openepd/api/base_sync_client.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright
|
2
|
+
# Copyright 2024 by C Change Labs Inc. www.c-change-labs.com
|
3
3
|
#
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
5
|
# you may not use this file except in compliance with the License.
|
@@ -35,6 +35,7 @@ import shutil
|
|
35
35
|
import time
|
36
36
|
from typing import IO, Any, BinaryIO, Callable, Final, NamedTuple
|
37
37
|
|
38
|
+
import requests
|
38
39
|
from requests import PreparedRequest, Response, Session, Timeout
|
39
40
|
from requests import codes as requests_codes
|
40
41
|
from requests.auth import AuthBase
|
@@ -160,6 +161,7 @@ class SyncHttpClient:
|
|
160
161
|
base_url: str,
|
161
162
|
throttle_retry_timeout: float | int | datetime.timedelta = 300,
|
162
163
|
requests_per_sec: float = 10,
|
164
|
+
retry_count: int = 3,
|
163
165
|
user_agent: str | None = None,
|
164
166
|
timeout_sec: float | tuple[float, float] | None = None,
|
165
167
|
auth: AuthBase | None = None,
|
@@ -175,6 +177,7 @@ class SyncHttpClient:
|
|
175
177
|
if `None` then underlying library decides which one to pass
|
176
178
|
:param timeout_sec: how long to wait for the server to send data before giving up,
|
177
179
|
as a seconds (just a single float), or a (connect timeout, read timeout) tuple.
|
180
|
+
:param retry_count: count of retries to perform in case of connection error or timeout.
|
178
181
|
"""
|
179
182
|
self._base_url: str = no_trailing_slash(base_url)
|
180
183
|
self._throttler = Throttler(rate_per_sec=requests_per_sec)
|
@@ -187,6 +190,7 @@ class SyncHttpClient:
|
|
187
190
|
self.timeout = timeout_sec
|
188
191
|
self._session: Session | None = None
|
189
192
|
self._auth: AuthBase | None = auth
|
193
|
+
self._retry_count: int = retry_count
|
190
194
|
|
191
195
|
self._http_retry_handlers: dict[int, RetryHandler] = {}
|
192
196
|
self._http_error_handlers: dict[int, ErrorHandler] = {}
|
@@ -370,7 +374,10 @@ class SyncHttpClient:
|
|
370
374
|
request_kwargs.update(kwargs)
|
371
375
|
|
372
376
|
do_request = self._handle_service_unavailable(
|
373
|
-
method,
|
377
|
+
method,
|
378
|
+
url,
|
379
|
+
self._retry_count,
|
380
|
+
partial(self._run_throttled_request, method, url, request_kwargs, session=session),
|
374
381
|
)
|
375
382
|
|
376
383
|
response = do_request()
|
@@ -433,17 +440,17 @@ class SyncHttpClient:
|
|
433
440
|
return default
|
434
441
|
|
435
442
|
@staticmethod
|
436
|
-
def _handle_service_unavailable(method: str, url: str, func: Callable):
|
443
|
+
def _handle_service_unavailable(method: str, url: str, retry_count: int, func: Callable):
|
437
444
|
@wraps(func)
|
438
445
|
def wrapper(*args, **kwargs):
|
439
|
-
attempts =
|
446
|
+
attempts = retry_count
|
440
447
|
response = None
|
441
448
|
exception = None
|
442
449
|
while attempts > 0:
|
443
450
|
exception = None
|
444
451
|
try:
|
445
452
|
response = func(*args, **kwargs)
|
446
|
-
except (ConnectionError, Timeout) as e:
|
453
|
+
except (requests.exceptions.ConnectionError, ConnectionError, Timeout) as e:
|
447
454
|
exception = e
|
448
455
|
|
449
456
|
if exception or response.status_code == requests_codes.service_unavailable:
|
openepd/api/category/__init__.py
CHANGED
openepd/api/category/dto.py
CHANGED
openepd/api/category/sync_api.py
CHANGED
openepd/api/common.py
CHANGED
openepd/api/dto/__init__.py
CHANGED
openepd/api/dto/base.py
CHANGED
openepd/api/dto/common.py
CHANGED
openepd/api/dto/meta.py
CHANGED
openepd/api/dto/mf.py
CHANGED
openepd/api/dto/params.py
CHANGED
openepd/api/epd/__init__.py
CHANGED
openepd/api/epd/dto.py
CHANGED
openepd/api/epd/sync_api.py
CHANGED
openepd/api/errors.py
CHANGED
openepd/api/pcr/__init__.py
CHANGED
openepd/api/pcr/dto.py
CHANGED
openepd/api/pcr/sync_api.py
CHANGED
openepd/api/sync_client.py
CHANGED
openepd/api/test/__init__.py
CHANGED
openepd/bundle/__init__.py
CHANGED
openepd/bundle/base.py
CHANGED
openepd/bundle/model.py
CHANGED
openepd/bundle/reader.py
CHANGED
openepd/bundle/writer.py
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright
|
2
|
+
# Copyright 2024 by C Change Labs Inc. www.c-change-labs.com
|
3
3
|
#
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
5
|
# you may not use this file except in compliance with the License.
|
@@ -117,7 +117,8 @@ class DefaultBundleWriter(BaseBundleWriter):
|
|
117
117
|
custom_data=custom_data,
|
118
118
|
)
|
119
119
|
self.__write_data_stream(
|
120
|
-
asset_info,
|
120
|
+
asset_info,
|
121
|
+
BytesIO(obj.json(indent=2, exclude_unset=True, exclude_none=True, by_alias=True).encode("utf-8")),
|
121
122
|
)
|
122
123
|
self.__register_entry(asset_info)
|
123
124
|
return asset_info
|
openepd/model/__init__.py
CHANGED
openepd/model/base.py
CHANGED
openepd/model/category.py
CHANGED
openepd/model/common.py
CHANGED
openepd/model/epd.py
CHANGED
openepd/model/lcia.py
CHANGED
openepd/model/org.py
CHANGED
openepd/model/pcr.py
CHANGED
openepd/model/specs/__init__.py
CHANGED
openepd/model/specs/concrete.py
CHANGED
openepd/model/standard.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: openepd
|
3
|
-
Version: 1.3.
|
3
|
+
Version: 1.3.2
|
4
4
|
Summary: Python library to work with OpenEPD format
|
5
5
|
Home-page: https://github.com/cchangelabs/openepd
|
6
6
|
License: Apache-2.0
|
@@ -17,7 +17,7 @@ Classifier: Programming Language :: Python :: 3
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.11
|
18
18
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
19
19
|
Provides-Extra: api-client
|
20
|
-
Requires-Dist: email-validator (>=1.3.
|
20
|
+
Requires-Dist: email-validator (>=1.3.2)
|
21
21
|
Requires-Dist: pydantic (>=1.10,<2.0)
|
22
22
|
Requires-Dist: requests (>=2.0) ; extra == "api-client"
|
23
23
|
Project-URL: Repository, https://github.com/cchangelabs/openepd
|
@@ -0,0 +1,44 @@
|
|
1
|
+
openepd/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
|
2
|
+
openepd/__version__.py,sha256=2U1V5N14sFiVEDWpAZVeFYO8d0mDC0vLTCUDm5sncmM,855
|
3
|
+
openepd/api/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
|
4
|
+
openepd/api/base_sync_client.py,sha256=JcNpWsGoIK_1Eg27CAQd7nIjbcfD56jQ1nS6B48Q0cI,21142
|
5
|
+
openepd/api/category/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
|
6
|
+
openepd/api/category/dto.py,sha256=oyeJp_F_55OVXfTX7EVl6VYrzA_STm4h-x52CW06ExQ,1067
|
7
|
+
openepd/api/category/sync_api.py,sha256=QLEyga590UON9zv7864NjdSPkxSoeWObIOCUOLhD9tc,1588
|
8
|
+
openepd/api/common.py,sha256=rfxjaDd7gGoen85wSooHt0W9xHdUlSlkTlkr2CO1ccg,8681
|
9
|
+
openepd/api/dto/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
|
10
|
+
openepd/api/dto/base.py,sha256=r3vxG3CpSS2M_L6k5mHVA4_Khunxkmh4QxEPjLOwft8,1233
|
11
|
+
openepd/api/dto/common.py,sha256=eiOmV-pk4uVdbqPxIzlS5cB60EnthT3GyFSmprc4-_c,4389
|
12
|
+
openepd/api/dto/meta.py,sha256=_jrQuzmWhhitdB0_tREGLdzU2iGOZqYy84zsC3Hexhw,2361
|
13
|
+
openepd/api/dto/mf.py,sha256=4jqhXqSGtA_MRXvJJFXtj4xMhsT9rucveyVAxt8V-oc,2195
|
14
|
+
openepd/api/dto/params.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
|
15
|
+
openepd/api/epd/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
|
16
|
+
openepd/api/epd/dto.py,sha256=q_fJxPn-LD13bQtzw0kT691iesaEi3ffn7P080bDPa4,4893
|
17
|
+
openepd/api/epd/sync_api.py,sha256=JEZR3WBZHqP4yOk1qkWsz0oKHMgegoZ7Pvoh6YTVefg,4391
|
18
|
+
openepd/api/errors.py,sha256=K6L_T91iJLFSl_7hVS6poV_BUjZJe3qJBUzp8mItm7g,2376
|
19
|
+
openepd/api/pcr/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
|
20
|
+
openepd/api/pcr/dto.py,sha256=_TXNsKMcn0JaTb6GfDIcR-TPJEPwslrk1N6cPDkm6NU,1641
|
21
|
+
openepd/api/pcr/sync_api.py,sha256=j8g23-FuaN2JkROVRo32v77JWpTWDIOWnIyomBbqNd4,1805
|
22
|
+
openepd/api/sync_client.py,sha256=DBkoB8rH8OG1d1sJ77h2YvIP8aFQX5eCfaX4sTN0vEs,2504
|
23
|
+
openepd/api/test/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
|
24
|
+
openepd/bundle/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
|
25
|
+
openepd/bundle/base.py,sha256=wSmRp6IjWtOSoSBpK_OhrxJ2OgHu_2hNnwYS4mmNFSA,7086
|
26
|
+
openepd/bundle/model.py,sha256=NWbpxorLzQ_OIFozV34wz76OWM_ORGTBkS0288chv0k,2647
|
27
|
+
openepd/bundle/reader.py,sha256=z4v_UWyaosktN3DdmnRx8GpLq4DkejjoUsckFfCgUac,6904
|
28
|
+
openepd/bundle/writer.py,sha256=AfvzzdAr9ybIbtiZfuX2mAGfddamTxXxUTxtHHrs2Gc,8353
|
29
|
+
openepd/model/__init__.py,sha256=rqQJWF5jpYAgRbbAycUfWMGsr5kGtfjmwzsTeqbElJw,837
|
30
|
+
openepd/model/base.py,sha256=vjcsMoNQNJuCK1ngh1RbOlYVzWgCw2LF9fhPaH_q2_o,5564
|
31
|
+
openepd/model/category.py,sha256=_6yFyldaDrkZk2_9ZAO2oRTz7ocvkg4T-D_aw5ncgvo,1840
|
32
|
+
openepd/model/common.py,sha256=SSTIvCjCkJEKf3FVnUvAw9SfFbkSdestq6YBX20eBQw,5386
|
33
|
+
openepd/model/epd.py,sha256=xB11K3MQweB20yrv_iTUxgjn3fWC5hkt4c45KJa-xHk,13944
|
34
|
+
openepd/model/lcia.py,sha256=2GOdcY6ASJu653SFwTakT9boYF-3CYCHLupyxTPUQ30,16711
|
35
|
+
openepd/model/org.py,sha256=ov3nrSk36imug7ADarNWHIXW9jiFbmboswoXVQCNeDI,3662
|
36
|
+
openepd/model/pcr.py,sha256=t861yFntmy3ewrnGLP47cv3afV-aCCVRlrbpGeRh-7I,4604
|
37
|
+
openepd/model/specs/__init__.py,sha256=jdMXv4_FcVUrDafCqulELDx6T2KuZQyRUtgAuLZMVR4,1137
|
38
|
+
openepd/model/specs/concrete.py,sha256=Mdx0IOWdnnLMy93oIAQhxfNkGdcDNIbCuhRVdhYEb3I,3342
|
39
|
+
openepd/model/standard.py,sha256=YjxpC9nyz6LM8m3z1s5S0exJ1qvA3n59-FBoScg-FL0,1519
|
40
|
+
openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
41
|
+
openepd-1.3.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
42
|
+
openepd-1.3.2.dist-info/METADATA,sha256=SWKaFh79jg21Bwjn5I4k527iDEBKh69rBga14Pcp35E,7762
|
43
|
+
openepd-1.3.2.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
44
|
+
openepd-1.3.2.dist-info/RECORD,,
|
openepd-1.3.0.dist-info/RECORD
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
openepd/__init__.py,sha256=7_QNx3x9RCC7Lj9fHDD3nzgq6wV4Fmou7OJNWkCPnEw,837
|
2
|
-
openepd/__version__.py,sha256=3MpUThIL4KGF9WPqKVL-QTkrit9yIOkls1xLeg8VBWw,855
|
3
|
-
openepd/api/__init__.py,sha256=7_QNx3x9RCC7Lj9fHDD3nzgq6wV4Fmou7OJNWkCPnEw,837
|
4
|
-
openepd/api/base_sync_client.py,sha256=JCGysgpQPHjJBr87YHKO1_lm1pk2u-sE8uRjJPML4SE,20834
|
5
|
-
openepd/api/category/__init__.py,sha256=7_QNx3x9RCC7Lj9fHDD3nzgq6wV4Fmou7OJNWkCPnEw,837
|
6
|
-
openepd/api/category/dto.py,sha256=d4JXpbsK7P4vEXQ1Piv09lJv_o9Xg-u_dEoT3bJbkIQ,1067
|
7
|
-
openepd/api/category/sync_api.py,sha256=ZJWoOB65xE6JXEylK9gRJ_JQlyLlDjA0vw6y4DTLmNA,1588
|
8
|
-
openepd/api/common.py,sha256=sa9MZagw21qq-S-YJavUR8zrABoxB1NbEJsCBYlmD34,8681
|
9
|
-
openepd/api/dto/__init__.py,sha256=7_QNx3x9RCC7Lj9fHDD3nzgq6wV4Fmou7OJNWkCPnEw,837
|
10
|
-
openepd/api/dto/base.py,sha256=cEd_44awjJe86IMUPz5xUBCaQygn7z5fl2m6cBWykSQ,1233
|
11
|
-
openepd/api/dto/common.py,sha256=ldfyy10eSsGfSP--wNB4FH4ZV53r4aVoSlrCrXNvpgo,4389
|
12
|
-
openepd/api/dto/meta.py,sha256=YtMyU0c49sVMWz73W80LQrIwuR0mGTFBaiWvJ6ASHEk,2361
|
13
|
-
openepd/api/dto/mf.py,sha256=l7QFQ_Jv5s9BmwOYkJHntBoAEIY1uYk_fuKsydmhEJw,2195
|
14
|
-
openepd/api/dto/params.py,sha256=7_QNx3x9RCC7Lj9fHDD3nzgq6wV4Fmou7OJNWkCPnEw,837
|
15
|
-
openepd/api/epd/__init__.py,sha256=7_QNx3x9RCC7Lj9fHDD3nzgq6wV4Fmou7OJNWkCPnEw,837
|
16
|
-
openepd/api/epd/dto.py,sha256=-eg8b0t_FwiOLGzbI62UyWw6Gb2vjrg0iQ12Gl7Nl7E,4893
|
17
|
-
openepd/api/epd/sync_api.py,sha256=RNiW_45p6yLtg0FZmSgNW-RnEdYQXhqckejQFmh4QOk,4391
|
18
|
-
openepd/api/errors.py,sha256=jXKnB9p1N3c1ELxLRHWUsmFydR-uvtE4hDugzTK4GAw,2376
|
19
|
-
openepd/api/pcr/__init__.py,sha256=7_QNx3x9RCC7Lj9fHDD3nzgq6wV4Fmou7OJNWkCPnEw,837
|
20
|
-
openepd/api/pcr/dto.py,sha256=fwBcj7_LS78-6LaFdURlRx5p0em-vJTUS_ol2IO8rTM,1641
|
21
|
-
openepd/api/pcr/sync_api.py,sha256=lyDpoNOQ7C-Iictkm8JDxUKVPWCyLwH2EGerR8tdvW8,1805
|
22
|
-
openepd/api/sync_client.py,sha256=PwNIc7g61BkMjXhsBsn-yrfBiFGSVocP8Tw8hhLVEeA,2504
|
23
|
-
openepd/api/test/__init__.py,sha256=7_QNx3x9RCC7Lj9fHDD3nzgq6wV4Fmou7OJNWkCPnEw,837
|
24
|
-
openepd/bundle/__init__.py,sha256=7_QNx3x9RCC7Lj9fHDD3nzgq6wV4Fmou7OJNWkCPnEw,837
|
25
|
-
openepd/bundle/base.py,sha256=5fhPzpQug8GTroJ8N2BaL15Uo0hf05E8hmJRahlf4rY,7086
|
26
|
-
openepd/bundle/model.py,sha256=lXcGWbXER8Af-oi5CwyfKrTCrUfzcAX2M5vq3Rf6GDM,2647
|
27
|
-
openepd/bundle/reader.py,sha256=XyL6jWdEjDkF24o12LOUmMHDm0nmiysuim0kcNqusAk,6904
|
28
|
-
openepd/bundle/writer.py,sha256=Lu4xt4g2N9JmFTeN9JfLIRS3bSWx7v_zDKPNyNhKgvI,8325
|
29
|
-
openepd/model/__init__.py,sha256=7_QNx3x9RCC7Lj9fHDD3nzgq6wV4Fmou7OJNWkCPnEw,837
|
30
|
-
openepd/model/base.py,sha256=AsGaSfDGfmEPtK85QqpF4GmlgbfeZdyiJ58wqYgWTSI,5564
|
31
|
-
openepd/model/category.py,sha256=BWEnp1oaRCYmlWDCMh9AH5QOwiPWz_BYIAZhnXtbbDo,1840
|
32
|
-
openepd/model/common.py,sha256=SPCHZDDxoCd042VXCqGXC8fNtSl2SMhtdpvoEarz4Qc,5386
|
33
|
-
openepd/model/epd.py,sha256=25HoLUK_wpt9wPP6Qq6CRauBJpmmcO6tbjyfN4c7Cho,13944
|
34
|
-
openepd/model/lcia.py,sha256=_b80ebVXZMbjbkbS3mUIEaS2HQpdMm8M6_65GbYCvVU,16711
|
35
|
-
openepd/model/org.py,sha256=0JPvFLDsid8pVZOO3yPxqOJNMxPKrABaLfLztdNUnEA,3662
|
36
|
-
openepd/model/pcr.py,sha256=yXv-Pn9_x13tvbXsgmjsJK3ZOScpEHCMDMePkWaYyPY,4604
|
37
|
-
openepd/model/specs/__init__.py,sha256=JmbvfzwO0QmNcrxGqYE_KjvYHBmc2bnDm7cyZsaMG78,1137
|
38
|
-
openepd/model/specs/concrete.py,sha256=v9Jyi6NiaoMA2ELX_wMckgTAtRplEOaIkZrd2qEdiN4,3342
|
39
|
-
openepd/model/standard.py,sha256=Nv_H3Lhu79y4waWzzKpwODCPPGrlWwRIl6eZBMSc9Qg,1519
|
40
|
-
openepd/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
41
|
-
openepd-1.3.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
42
|
-
openepd-1.3.0.dist-info/METADATA,sha256=IG6Yz3ikcMDVFJL4omefjtKtBLHaYrjdHiXtIDbUSe8,7762
|
43
|
-
openepd-1.3.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
44
|
-
openepd-1.3.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|