72
72
RGX_CT_TOKEN_TYPE = r"type=(?P<type>[\w\_]+)"
73
73
74
74
RGX_CONTENT_TYPE = (
75
- RGX_MIME_TYPE_MEDIA
76
- + "/"
77
- + "(?P<rawDomain>("
78
- + RGX_CT_ENERGYML_DOMAIN
79
- + ")|("
80
- + RGX_CT_XML_DOMAIN
81
- + r")|([\w-]+\.?)+)"
82
- + "(;(("
83
- + RGX_CT_TOKEN_VERSION
84
- + ")|("
85
- + RGX_CT_TOKEN_TYPE
86
- + ")))*"
87
- )
88
- RGX_QUALIFIED_TYPE = (
89
- r"(?P<domain>[a-zA-Z]+)" + RGX_DOMAIN_VERSION_FLAT + r"\.(?P<type>[\w_]+)"
75
+ RGX_MIME_TYPE_MEDIA
76
+ + "/"
77
+ + "(?P<rawDomain>("
78
+ + RGX_CT_ENERGYML_DOMAIN
79
+ + ")|("
80
+ + RGX_CT_XML_DOMAIN
81
+ + r")|([\w-]+\.?)+)"
82
+ + "(;(("
83
+ + RGX_CT_TOKEN_VERSION
84
+ + ")|("
85
+ + RGX_CT_TOKEN_TYPE
86
+ + ")))*"
90
87
)
88
+ RGX_QUALIFIED_TYPE = r"(?P<domain>[a-zA-Z]+)" + RGX_DOMAIN_VERSION_FLAT + r"\.(?P<type>[\w_]+)"
91
89
# =========
92
90
93
91
RGX_SCHEMA_VERSION = (
94
- r"(?P<name>[eE]ml|[cC]ommon|[rR]esqml|[wW]itsml|[pP]rodml|[oO]pc)?\s*v?"
95
- + RGX_DOMAIN_VERSION
96
- + r"\s*$"
92
+ r"(?P<name>[eE]ml|[cC]ommon|[rR]esqml|[wW]itsml|[pP]rodml|[oO]pc)?\s*v?" + RGX_DOMAIN_VERSION + r"\s*$"
97
93
)
98
94
99
95
RGX_ENERGYML_FILE_NAME_OLD = r"(?P<type>[\w]+)_" + RGX_UUID_NO_GRP + r"\.xml$"
100
- RGX_ENERGYML_FILE_NAME_NEW = (
101
- RGX_UUID_NO_GRP + r"\.(?P<objectVersion>\d+(\.\d+)*)\.xml$"
102
- )
103
- RGX_ENERGYML_FILE_NAME = (
104
- rf"^(.*/)?({ RGX_ENERGYML_FILE_NAME_OLD } )|({ RGX_ENERGYML_FILE_NAME_NEW } )"
105
- )
96
+ RGX_ENERGYML_FILE_NAME_NEW = RGX_UUID_NO_GRP + r"\.(?P<objectVersion>\d+(\.\d+)*)\.xml$"
97
+ RGX_ENERGYML_FILE_NAME = rf"^(.*/)?({ RGX_ENERGYML_FILE_NAME_OLD } )|({ RGX_ENERGYML_FILE_NAME_NEW } )"
106
98
107
99
RGX_XML_HEADER = r"^\s*<\?xml(\s+(encoding\s*=\s*\"(?P<encoding>[^\"]+)\"|version\s*=\s*\"(?P<version>[^\"]+)\"|standalone\s*=\s*\"(?P<standalone>[^\"]+)\"))+" # pylint: disable=C0301
108
100
128
120
URI_RGX_GRP_QUERY = "query"
129
121
130
122
# Patterns
131
- _URI_RGX_PKG_NAME = "|" .join (
132
- ENERGYML_NAMESPACES .keys ()
133
- ) # "[a-zA-Z]+\w+" //witsml|resqml|prodml|eml
123
+ _URI_RGX_PKG_NAME = "|" .join (ENERGYML_NAMESPACES .keys ()) # "[a-zA-Z]+\w+" //witsml|resqml|prodml|eml
134
124
URI_RGX = (
135
- r"^eml:\/\/\/(?:dataspace\('(?P<"
136
- + URI_RGX_GRP_DATASPACE
137
- + r">[^']*?(?:''[^']*?)*)'\)\/?)?((?P<"
138
- + URI_RGX_GRP_DOMAIN
139
- + r">"
140
- + _URI_RGX_PKG_NAME
141
- + r")(?P<"
142
- + URI_RGX_GRP_DOMAIN_VERSION
143
- + r">[1-9]\d)\.(?P<"
144
- + URI_RGX_GRP_OBJECT_TYPE
145
- + r">\w+)(\((?:(?P<"
146
- + URI_RGX_GRP_UUID
147
- + r">(uuid=)?"
148
- + RGX_UUID_NO_GRP
149
- + r")|uuid=(?P<"
150
- + URI_RGX_GRP_UUID2
151
- + r">"
152
- + RGX_UUID_NO_GRP
153
- + r"),\s*version='(?P<"
154
- + URI_RGX_GRP_VERSION
155
- + r">[^']*?(?:''[^']*?)*)')\))?)?(\/(?P<"
156
- + URI_RGX_GRP_COLLECTION_DOMAIN
157
- + r">"
158
- + _URI_RGX_PKG_NAME
159
- + r")(?P<"
160
- + URI_RGX_GRP_COLLECTION_DOMAIN_VERSION
161
- + r">[1-9]\d)\.(?P<"
162
- + URI_RGX_GRP_COLLECTION_TYPE
163
- + r">\w+))?(?:\?(?P<"
164
- + URI_RGX_GRP_QUERY
165
- + r">[^#]+))?$"
125
+ r"^eml:\/\/\/(?:dataspace\('(?P<"
126
+ + URI_RGX_GRP_DATASPACE
127
+ + r">[^']*?(?:''[^']*?)*)'\)\/?)?((?P<"
128
+ + URI_RGX_GRP_DOMAIN
129
+ + r">"
130
+ + _URI_RGX_PKG_NAME
131
+ + r")(?P<"
132
+ + URI_RGX_GRP_DOMAIN_VERSION
133
+ + r">[1-9]\d)\.(?P<"
134
+ + URI_RGX_GRP_OBJECT_TYPE
135
+ + r">\w+)(\((?:(?P<"
136
+ + URI_RGX_GRP_UUID
137
+ + r">(uuid=)?"
138
+ + RGX_UUID_NO_GRP
139
+ + r")|uuid=(?P<"
140
+ + URI_RGX_GRP_UUID2
141
+ + r">"
142
+ + RGX_UUID_NO_GRP
143
+ + r"),\s*version='(?P<"
144
+ + URI_RGX_GRP_VERSION
145
+ + r">[^']*?(?:''[^']*?)*)')\))?)?(\/(?P<"
146
+ + URI_RGX_GRP_COLLECTION_DOMAIN
147
+ + r">"
148
+ + _URI_RGX_PKG_NAME
149
+ + r")(?P<"
150
+ + URI_RGX_GRP_COLLECTION_DOMAIN_VERSION
151
+ + r">[1-9]\d)\.(?P<"
152
+ + URI_RGX_GRP_COLLECTION_TYPE
153
+ + r">\w+))?(?:\?(?P<"
154
+ + URI_RGX_GRP_QUERY
155
+ + r">[^#]+))?$"
166
156
)
167
157
168
158
# ================================
169
- RELS_CONTENT_TYPE = (
170
- "application/vnd.openxmlformats-package.core-properties+xml"
171
- )
159
+ RELS_CONTENT_TYPE = "application/vnd.openxmlformats-package.core-properties+xml"
172
160
RELS_FOLDER_NAME = "_rels"
173
161
174
162
primitives = (bool , str , int , float , type (None ))
179
167
180
168
class MimeType (Enum ):
181
169
"""Some mime types"""
170
+
182
171
CSV = "text/csv"
183
172
HDF5 = "application/x-hdf5"
184
173
PARQUET = "application/x-parquet"
@@ -199,7 +188,7 @@ class EpcExportVersion(Enum):
199
188
200
189
201
190
class EPCRelsRelationshipType (Enum ):
202
- """ Rels relationship types """
191
+ """Rels relationship types"""
203
192
204
193
#: The object in Target is the destination of the relationship.
205
194
DESTINATION_OBJECT = "destinationObject"
@@ -244,10 +233,12 @@ def get_type(self) -> str:
244
233
245
234
@dataclass
246
235
class RawFile :
247
- """ A class for a non energyml file to be stored in an EPC file """
236
+ """A class for a non energyml file to be stored in an EPC file"""
237
+
248
238
path : str = field (default = "_" )
249
239
content : BytesIO = field (default = None )
250
240
241
+
251
242
# ______ __ _
252
243
# / ____/_ ______ _____/ /_(_)___ ____ _____
253
244
# / /_ / / / / __ \/ ___/ __/ / __ \/ __ \/ ___/
@@ -335,7 +326,10 @@ def get_domain_version_from_content_or_qualified_type(cqt: str) -> Optional[str]
335
326
336
327
def split_identifier (identifier : str ) -> Tuple [str , Optional [str ]]:
337
328
match = re .match (RGX_IDENTIFIER , identifier )
338
- return (match .group (URI_RGX_GRP_UUID ), match .group (URI_RGX_GRP_VERSION ), )
329
+ return (
330
+ match .group (URI_RGX_GRP_UUID ),
331
+ match .group (URI_RGX_GRP_VERSION ),
332
+ )
339
333
340
334
341
335
def now (time_zone = datetime .timezone .utc ) -> float :
@@ -356,12 +350,10 @@ def date_to_epoch(date: str) -> int:
356
350
357
351
358
352
def epoch_to_date (
359
- epoch_value : int ,
353
+ epoch_value : int ,
360
354
) -> str :
361
355
date = datetime .datetime .fromtimestamp (epoch_value , datetime .timezone .utc )
362
- return date .astimezone (datetime .timezone .utc ).strftime (
363
- "%Y-%m-%dT%H:%M:%SZ"
364
- )
356
+ return date .astimezone (datetime .timezone .utc ).strftime ("%Y-%m-%dT%H:%M:%SZ" )
365
357
# date = datetime.datetime.fromtimestamp(epoch_value, datetime.timezone.utc)
366
358
# return date.astimezone(datetime.timezone(datetime.timedelta(hours=0), "UTC")).strftime('%Y-%m-%dT%H:%M:%SZ')
367
359
# return date.strftime("%Y-%m-%dT%H:%M:%SZ%z")
@@ -379,9 +371,9 @@ def mime_type_to_file_extension(mime_type: str) -> Optional[str]:
379
371
if mime_type is not None :
380
372
mime_type_lw = mime_type .lower ()
381
373
if (
382
- mime_type_lw == "application/x-parquet"
383
- or mime_type_lw == "application/parquet"
384
- or mime_type_lw == "application/vnd.apache.parquet"
374
+ mime_type_lw == "application/x-parquet"
375
+ or mime_type_lw == "application/parquet"
376
+ or mime_type_lw == "application/vnd.apache.parquet"
385
377
):
386
378
return "parquet"
387
379
elif mime_type_lw == "application/x-hdf5" :
@@ -419,7 +411,10 @@ def _get_property_kind_dict_path_as_str(file_type: str = "xml") -> str:
419
411
try :
420
412
import energyml .utils .rc as RC
421
413
except :
422
- import src .energyml .utils .rc as RC
414
+ try :
415
+ import src .energyml .utils .rc as RC
416
+ except :
417
+ import utils .rc as RC
423
418
return files (RC ).joinpath (f"PropertyKindDictionary_v2.3.{ file_type .lower ()} " ).read_text (encoding = "utf-8" )
424
419
425
420
@@ -452,3 +447,5 @@ def get_property_kind_dict_path_as_xml() -> str:
452
447
print (path_iter (".Citation.Title.Coucou" ))
453
448
print (path_iter (".Citation.Ti\\ .*.Coucou" ))
454
449
450
+ print (URI_RGX )
451
+ print (RGX_UUID_NO_GRP )
0 commit comments