csv-detective 0.10.1.dev2576__py3-none-any.whl → 0.10.1.dev2590__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.
- csv_detective/detection/formats.py +11 -38
- csv_detective/format.py +8 -1
- csv_detective/formats/binary.py +1 -0
- csv_detective/formats/booleen.py +1 -0
- csv_detective/formats/code_commune_insee.py +1 -0
- csv_detective/formats/code_departement.py +1 -0
- csv_detective/formats/code_fantoir.py +1 -0
- csv_detective/formats/code_postal.py +1 -0
- csv_detective/formats/code_region.py +1 -0
- csv_detective/formats/date.py +1 -0
- csv_detective/formats/datetime_aware.py +6 -1
- csv_detective/formats/datetime_naive.py +3 -0
- csv_detective/formats/datetime_rfc822.py +1 -0
- csv_detective/formats/float.py +1 -0
- csv_detective/formats/geojson.py +1 -0
- csv_detective/formats/int.py +2 -1
- csv_detective/formats/json.py +1 -0
- csv_detective/formats/latitude_l93.py +2 -0
- csv_detective/formats/latitude_wgs.py +2 -0
- csv_detective/formats/latitude_wgs_fr_metropole.py +2 -0
- csv_detective/formats/latlon_wgs.py +1 -0
- csv_detective/formats/longitude_l93.py +2 -0
- csv_detective/formats/longitude_wgs.py +2 -0
- csv_detective/formats/longitude_wgs_fr_metropole.py +2 -0
- csv_detective/formats/lonlat_wgs.py +1 -0
- csv_detective/formats/siren.py +1 -0
- csv_detective/formats/siret.py +1 -0
- csv_detective/formats/year.py +1 -0
- {csv_detective-0.10.1.dev2576.dist-info → csv_detective-0.10.1.dev2590.dist-info}/METADATA +1 -1
- {csv_detective-0.10.1.dev2576.dist-info → csv_detective-0.10.1.dev2590.dist-info}/RECORD +32 -32
- {csv_detective-0.10.1.dev2576.dist-info → csv_detective-0.10.1.dev2590.dist-info}/WHEEL +1 -1
- {csv_detective-0.10.1.dev2576.dist-info → csv_detective-0.10.1.dev2590.dist-info}/entry_points.txt +0 -0
|
@@ -82,22 +82,7 @@ def detect_formats(
|
|
|
82
82
|
# To reduce false positives: ensure these formats are detected only if the label yields
|
|
83
83
|
# a detection (skipping the ones that have been excluded by the users).
|
|
84
84
|
formats_with_mandatory_label = [
|
|
85
|
-
f
|
|
86
|
-
for f in [
|
|
87
|
-
"code_departement",
|
|
88
|
-
"code_commune_insee",
|
|
89
|
-
"code_postal",
|
|
90
|
-
"code_fantoir",
|
|
91
|
-
"latitude_wgs",
|
|
92
|
-
"longitude_wgs",
|
|
93
|
-
"latitude_wgs_fr_metropole",
|
|
94
|
-
"longitude_wgs_fr_metropole",
|
|
95
|
-
"latitude_l93",
|
|
96
|
-
"longitude_l93",
|
|
97
|
-
"siren",
|
|
98
|
-
"siret",
|
|
99
|
-
]
|
|
100
|
-
if f in scores_table.index
|
|
85
|
+
f for f in fmtm.get_formats_with_mandatory_label() if f in scores_table.index
|
|
101
86
|
]
|
|
102
87
|
scores_table.loc[formats_with_mandatory_label, :] = np.where(
|
|
103
88
|
scores_table_labels.loc[formats_with_mandatory_label, :],
|
|
@@ -106,32 +91,16 @@ def detect_formats(
|
|
|
106
91
|
)
|
|
107
92
|
analysis["columns"] = prepare_output_dict(scores_table, limited_output)
|
|
108
93
|
|
|
109
|
-
metier_to_python_type = {
|
|
110
|
-
"booleen": "bool",
|
|
111
|
-
"int": "int",
|
|
112
|
-
"float": "float",
|
|
113
|
-
"string": "string",
|
|
114
|
-
"json": "json",
|
|
115
|
-
"geojson": "json",
|
|
116
|
-
"datetime_aware": "datetime",
|
|
117
|
-
"datetime_naive": "datetime",
|
|
118
|
-
"datetime_rfc822": "datetime",
|
|
119
|
-
"date": "date",
|
|
120
|
-
"latitude_l93": "float",
|
|
121
|
-
"latitude_wgs": "float",
|
|
122
|
-
"latitude_wgs_fr_metropole": "float",
|
|
123
|
-
"longitude_l93": "float",
|
|
124
|
-
"longitude_wgs": "float",
|
|
125
|
-
"longitude_wgs_fr_metropole": "float",
|
|
126
|
-
"binary": "binary",
|
|
127
|
-
}
|
|
128
|
-
|
|
129
94
|
if not limited_output:
|
|
130
95
|
for detection_method in ["columns_fields", "columns_labels", "columns"]:
|
|
131
96
|
analysis[detection_method] = {
|
|
132
97
|
col_name: [
|
|
133
98
|
{
|
|
134
|
-
"python_type":
|
|
99
|
+
"python_type": (
|
|
100
|
+
"string"
|
|
101
|
+
if detection["format"] == "string"
|
|
102
|
+
else fmtm.formats[detection["format"]].python_type
|
|
103
|
+
),
|
|
135
104
|
**detection,
|
|
136
105
|
}
|
|
137
106
|
for detection in detections
|
|
@@ -142,7 +111,11 @@ def detect_formats(
|
|
|
142
111
|
for detection_method in ["columns_fields", "columns_labels", "columns"]:
|
|
143
112
|
analysis[detection_method] = {
|
|
144
113
|
col_name: {
|
|
145
|
-
"python_type":
|
|
114
|
+
"python_type": (
|
|
115
|
+
"string"
|
|
116
|
+
if detection["format"] == "string"
|
|
117
|
+
else fmtm.formats[detection["format"]].python_type
|
|
118
|
+
),
|
|
146
119
|
**detection,
|
|
147
120
|
}
|
|
148
121
|
for col_name, detection in analysis[detection_method].items()
|
csv_detective/format.py
CHANGED
|
@@ -12,6 +12,8 @@ class Format:
|
|
|
12
12
|
labels: list[str] = [],
|
|
13
13
|
proportion: float = 1,
|
|
14
14
|
tags: list[str] = [],
|
|
15
|
+
mandatory_label: bool = False,
|
|
16
|
+
python_type: str = "string",
|
|
15
17
|
) -> None:
|
|
16
18
|
"""
|
|
17
19
|
Instanciates a Format object.
|
|
@@ -30,6 +32,8 @@ class Format:
|
|
|
30
32
|
self.labels: list[str] = labels
|
|
31
33
|
self.proportion: float = proportion
|
|
32
34
|
self.tags: list[str] = tags
|
|
35
|
+
self.mandatory_label: bool = mandatory_label
|
|
36
|
+
self.python_type: str = python_type
|
|
33
37
|
|
|
34
38
|
def is_valid_label(self, val: str) -> float:
|
|
35
39
|
return header_score(val, self.labels)
|
|
@@ -49,7 +53,7 @@ class FormatsManager:
|
|
|
49
53
|
_test_values=module._test_values,
|
|
50
54
|
**{
|
|
51
55
|
attr: val
|
|
52
|
-
for attr in ["labels", "proportion", "tags"]
|
|
56
|
+
for attr in ["labels", "proportion", "tags", "mandatory_label", "python_type"]
|
|
53
57
|
if (val := getattr(module, attr, None))
|
|
54
58
|
},
|
|
55
59
|
)
|
|
@@ -63,5 +67,8 @@ class FormatsManager:
|
|
|
63
67
|
if all(tag in fmt.tags for tag in tags)
|
|
64
68
|
}
|
|
65
69
|
|
|
70
|
+
def get_formats_with_mandatory_label(self) -> dict[str, Format]:
|
|
71
|
+
return {label: fmt for label, fmt in self.formats.items() if fmt.mandatory_label}
|
|
72
|
+
|
|
66
73
|
def available_tags(self) -> set[str]:
|
|
67
74
|
return set(tag for format in self.formats.values() for tag in format.tags)
|
csv_detective/formats/binary.py
CHANGED
csv_detective/formats/booleen.py
CHANGED
csv_detective/formats/date.py
CHANGED
|
@@ -4,6 +4,7 @@ from csv_detective.formats.date import SHARED_DATE_LABELS, aaaammjj_pattern, dat
|
|
|
4
4
|
|
|
5
5
|
proportion = 1
|
|
6
6
|
tags = ["temp", "type"]
|
|
7
|
+
python_type = "datetime"
|
|
7
8
|
labels = SHARED_DATE_LABELS + ["datetime", "timestamp"]
|
|
8
9
|
|
|
9
10
|
threshold = 0.7
|
|
@@ -12,7 +13,9 @@ pat = (
|
|
|
12
13
|
+ r"(T|\s)(0\d|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])(.\d{1,6})"
|
|
13
14
|
+ r"?(([+-](0\d|1[0-9]|2[0-3]):([0-5][0-9]))|Z)$"
|
|
14
15
|
)
|
|
15
|
-
|
|
16
|
+
# date_casting is very (too?) good at finding date(time)s where there sometimes is just a number
|
|
17
|
+
# this prefix check asserts we only consider strings that have a somewhat fine structure trying to cast
|
|
18
|
+
prefix = r"^\d{2}[-/:]?\d{2}"
|
|
16
19
|
|
|
17
20
|
|
|
18
21
|
def _is(val):
|
|
@@ -41,6 +44,8 @@ _test_values = {
|
|
|
41
44
|
"2000-12-21 10:20:10.1Z",
|
|
42
45
|
"2024-12-19T10:53:36.428000+00:00",
|
|
43
46
|
"1996/06/22 10:20:10 GMT",
|
|
47
|
+
"12/31/2022 12:00:00-04:00",
|
|
48
|
+
"12:00:00-04:00 12/31/2022",
|
|
44
49
|
],
|
|
45
50
|
False: [
|
|
46
51
|
"2021-06-22T30:20:10",
|
|
@@ -6,6 +6,7 @@ from csv_detective.formats.datetime_aware import labels, prefix # noqa
|
|
|
6
6
|
|
|
7
7
|
proportion = 1
|
|
8
8
|
tags = ["temp", "type"]
|
|
9
|
+
python_type = "datetime"
|
|
9
10
|
threshold = 0.7
|
|
10
11
|
|
|
11
12
|
# matches AAAA-MM-JJTHH:MM:SS(.dddddd)Z with any of the listed separators for the date OR NO SEPARATOR
|
|
@@ -36,6 +37,8 @@ _test_values = {
|
|
|
36
37
|
"2021-06-22 10:20:10",
|
|
37
38
|
"2030/06-22 00:00:00",
|
|
38
39
|
"2030/06/22 00:00:00.0028",
|
|
40
|
+
"12/31/2022 12:00:00",
|
|
41
|
+
"12:00:00 12/31/2022",
|
|
39
42
|
],
|
|
40
43
|
False: [
|
|
41
44
|
"2021-06-22T30:20:10",
|
csv_detective/formats/float.py
CHANGED
csv_detective/formats/geojson.py
CHANGED
csv_detective/formats/int.py
CHANGED
csv_detective/formats/json.py
CHANGED
csv_detective/formats/siren.py
CHANGED
csv_detective/formats/siret.py
CHANGED
csv_detective/formats/year.py
CHANGED
|
@@ -4,24 +4,24 @@ csv_detective/detection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
|
|
|
4
4
|
csv_detective/detection/columns.py,sha256=_JtZHBr3aoEmSWh2xVe2ISnt-G7hpnA9vqlvcaGd0Go,2887
|
|
5
5
|
csv_detective/detection/encoding.py,sha256=KZ8W8BPfZAq9UiP5wgaeupYa5INU8KPz98E2L3XpX2Y,999
|
|
6
6
|
csv_detective/detection/engine.py,sha256=wQeDKpp2DKF-HcS1R8H6GgQyaUgQme4szPtEHgAjBII,1552
|
|
7
|
-
csv_detective/detection/formats.py,sha256=
|
|
7
|
+
csv_detective/detection/formats.py,sha256=9aIE4gwTN8c8pa-kofeJ7zalo8NqjGZabYD-G79kV5I,4734
|
|
8
8
|
csv_detective/detection/headers.py,sha256=95pTL524Sy5PGxyQ03ofFUaamvlmkxTJQe8u6HfzOkU,1051
|
|
9
9
|
csv_detective/detection/rows.py,sha256=quf3ZTTFPOo09H-faZ9cRKibb1QGHEKHlpivFRx2Va4,742
|
|
10
10
|
csv_detective/detection/separator.py,sha256=XjeDBqhiBxVfkCPJKem9BAgJqs_hOgQltc_pxrH_-Tg,1547
|
|
11
11
|
csv_detective/detection/variables.py,sha256=-QtZOB96z3pWbqnZ-c1RU3yzoYqcO61A0JzeS6JbkxY,3576
|
|
12
12
|
csv_detective/explore_csv.py,sha256=qSf6N3tbp43BUMJF5wiXz3aYKaTez6ro-75KL2Arci4,7174
|
|
13
|
-
csv_detective/format.py,sha256=
|
|
13
|
+
csv_detective/format.py,sha256=5f3XhqDyGAlSxvNuSOiJhs0qVNuV7JmoJyGVXtaY8Zc,2770
|
|
14
14
|
csv_detective/formats/__init__.py,sha256=Egiy29kcG3Oz2eE2maYhD3wP29zOSOWyRlOpGD5LGvU,318
|
|
15
15
|
csv_detective/formats/adresse.py,sha256=jALDpEDAWyAcgqEfNVRg_W1r6XaYuJKD_jAaP2l-bxk,1943
|
|
16
|
-
csv_detective/formats/binary.py,sha256=
|
|
17
|
-
csv_detective/formats/booleen.py,sha256=
|
|
18
|
-
csv_detective/formats/code_commune_insee.py,sha256=
|
|
16
|
+
csv_detective/formats/binary.py,sha256=eATFZ6JdD6wNu47zKnxG-hB_lA7R34R9grXFJlw7wrU,700
|
|
17
|
+
csv_detective/formats/booleen.py,sha256=Bavi1e89UDEkTWFbkn5YJNtWZnn6gmbt86CweXQAX44,670
|
|
18
|
+
csv_detective/formats/code_commune_insee.py,sha256=9GXruZOR6MY94CjIIcHapDf0rlw0im8omhu7n-7E0gY,528
|
|
19
19
|
csv_detective/formats/code_csp_insee.py,sha256=_JQ-YbnHMenNnwIg1xBmNVqgCa1tLD2hbPN1soODhDk,656
|
|
20
|
-
csv_detective/formats/code_departement.py,sha256=
|
|
21
|
-
csv_detective/formats/code_fantoir.py,sha256=
|
|
20
|
+
csv_detective/formats/code_departement.py,sha256=IlDENaJh2aEmjrUMhnphT0f1KwmbEtAu9UANTxssbgg,652
|
|
21
|
+
csv_detective/formats/code_fantoir.py,sha256=XqXx3al20lp1eoxfm9eKqg0iII4NtSWN03lMIH-Tcdg,390
|
|
22
22
|
csv_detective/formats/code_import.py,sha256=N5NVvnHkRwC7ARHoM77R-2cYSeyNmPoRIn6JL3Fbnjs,346
|
|
23
|
-
csv_detective/formats/code_postal.py,sha256=
|
|
24
|
-
csv_detective/formats/code_region.py,sha256=
|
|
23
|
+
csv_detective/formats/code_postal.py,sha256=hbE9J4OKi8qLcLEGNtkjzV1SS5RJ2CgzoEs77WahZYo,451
|
|
24
|
+
csv_detective/formats/code_region.py,sha256=DTM7pIHGK-vPc2ZuJ4nNlh0X7lXPl3HJJ3XMbb-UZs0,390
|
|
25
25
|
csv_detective/formats/code_rna.py,sha256=WExlQtlAUfOFT4N3MKsMBhZVxTdNzgexFjmXhZdRM1w,512
|
|
26
26
|
csv_detective/formats/code_waldec.py,sha256=kJEJfikbhMfVwtA8hBpup0tpeSFoY_rWrEdXQxgNwhg,297
|
|
27
27
|
csv_detective/formats/commune.py,sha256=oVpwINGqpwMOT43KkasozipJ9hBeoQ5FrKV_wIeVJGE,532
|
|
@@ -31,31 +31,31 @@ csv_detective/formats/data/insee_ape700.txt,sha256=nKgslakENwgE7sPkVNHqR23iXuxF0
|
|
|
31
31
|
csv_detective/formats/data/iso_country_code_alpha2.txt,sha256=YyPlDqCdz65ecf4Wes_r0P4rDSJG35niXtjc4MmctXM,1740
|
|
32
32
|
csv_detective/formats/data/iso_country_code_alpha3.txt,sha256=aYqKSohgXuBtcIBfF52f8JWYDdxL_HV_Ol1srGnWBp4,1003
|
|
33
33
|
csv_detective/formats/data/iso_country_code_numeric.txt,sha256=2GtEhuporsHYV-pU4q9kfXU5iOtfW5C0GYBTTKQtnnA,1004
|
|
34
|
-
csv_detective/formats/date.py,sha256=
|
|
34
|
+
csv_detective/formats/date.py,sha256=INqXv2l5wMID2FMHPqOsnrwMKuB587e_RoQ0rq3ap50,2752
|
|
35
35
|
csv_detective/formats/date_fr.py,sha256=3hTw5RommrhcgECFRSt9KgyB9zyi1j4W3UygEHmRgoE,502
|
|
36
|
-
csv_detective/formats/datetime_aware.py,sha256=
|
|
37
|
-
csv_detective/formats/datetime_naive.py,sha256=
|
|
38
|
-
csv_detective/formats/datetime_rfc822.py,sha256=
|
|
36
|
+
csv_detective/formats/datetime_aware.py,sha256=7ARCYgNBkVKt8eVLKR3ZzTodZAFRqqsLzxjqP5UdFD0,1903
|
|
37
|
+
csv_detective/formats/datetime_naive.py,sha256=DZ0apAm3vIy4cdm5DynAeRueI_8rhuHYQtAOZ5yyZ5k,1681
|
|
38
|
+
csv_detective/formats/datetime_rfc822.py,sha256=URyS-_5zyImWwY-IX3hSGueyCJfQkfvVDpD2UsDzW3g,627
|
|
39
39
|
csv_detective/formats/departement.py,sha256=UP9UF23BFq_-mIS8N10K5XkoCXwPmDeSoa_7lCAkI4w,768
|
|
40
40
|
csv_detective/formats/email.py,sha256=Qen2EBDYY5TtWXwxrrTGWRrbIybz0ySlVpl4ZRk8pzA,517
|
|
41
|
-
csv_detective/formats/float.py,sha256=
|
|
42
|
-
csv_detective/formats/geojson.py,sha256=
|
|
41
|
+
csv_detective/formats/float.py,sha256=YhZ2EX1MtazSLuh1xyRHq0OoZxMUrNoRgXZd8h_HRkU,1056
|
|
42
|
+
csv_detective/formats/geojson.py,sha256=oV5pJo2yWxeEdvCEmM4tGhp0D8Joz2RZzKCvlkh7yJ8,779
|
|
43
43
|
csv_detective/formats/insee_ape700.py,sha256=cLs3Eersqm4wX6oqsqp0Vb3WGPJb2xY5Za_vh0uLgKc,780
|
|
44
44
|
csv_detective/formats/insee_canton.py,sha256=Q5jczsOmh1wPP2KtDkcmqZ7Hlv50Zz9YvPIbxy46qs0,531
|
|
45
|
-
csv_detective/formats/int.py,sha256=
|
|
45
|
+
csv_detective/formats/int.py,sha256=sVGVWPlPtdErY7b2g0HgsSExwuMEfkPJw6qrPoEJjHo,503
|
|
46
46
|
csv_detective/formats/iso_country_code_alpha2.py,sha256=vIep_j0xuqlXKyuvk8c8GaJC73HuJqKfQ4QzQKHsPc0,613
|
|
47
47
|
csv_detective/formats/iso_country_code_alpha3.py,sha256=yOmm91O8ot6KoUBfss5cqykDfeeMNCwafDAvPNvbufA,668
|
|
48
48
|
csv_detective/formats/iso_country_code_numeric.py,sha256=989ypOmjIrNTV9vFnrBlbpRWQ9whd3Rv9gNasdF_O4g,685
|
|
49
49
|
csv_detective/formats/jour_de_la_semaine.py,sha256=c5QBw9eZfwRs_jL_Ckm95UH-TxlExdFmfZNYW7-_iZI,606
|
|
50
|
-
csv_detective/formats/json.py,sha256=
|
|
51
|
-
csv_detective/formats/latitude_l93.py,sha256=
|
|
52
|
-
csv_detective/formats/latitude_wgs.py,sha256=
|
|
53
|
-
csv_detective/formats/latitude_wgs_fr_metropole.py,sha256=
|
|
54
|
-
csv_detective/formats/latlon_wgs.py,sha256=
|
|
55
|
-
csv_detective/formats/longitude_l93.py,sha256=
|
|
56
|
-
csv_detective/formats/longitude_wgs.py,sha256=
|
|
57
|
-
csv_detective/formats/longitude_wgs_fr_metropole.py,sha256=
|
|
58
|
-
csv_detective/formats/lonlat_wgs.py,sha256=
|
|
50
|
+
csv_detective/formats/json.py,sha256=KkqI5fP32EGSGeBPwE1CwUlWHhjla4cLOOmXp5Sja7E,468
|
|
51
|
+
csv_detective/formats/latitude_l93.py,sha256=V0rdKmCgfWLdssoN5xaoDM9vSK4KmhCw_lSaX23i-sI,1033
|
|
52
|
+
csv_detective/formats/latitude_wgs.py,sha256=W-SB8kfe4Kbz3erZ2GHTOPah3Y0gk_0jOGAnRHJWYko,827
|
|
53
|
+
csv_detective/formats/latitude_wgs_fr_metropole.py,sha256=ZO6xxYb7FEtYxA9Jrzhi7ZzW0-WKvGrD1smm7hZP_Zs,838
|
|
54
|
+
csv_detective/formats/latlon_wgs.py,sha256=0tEwF8ITWKcuZwfzaXm5EZKNiKGEfJ0JINAWALPHNDk,1248
|
|
55
|
+
csv_detective/formats/longitude_l93.py,sha256=uYEiRa6pqCIrfCh22XQ-sURZWQZqWymqnNpSkvuedTE,815
|
|
56
|
+
csv_detective/formats/longitude_wgs.py,sha256=1EqeynDb8QDLXR8pf4ogFuI9UWD9eIqb49blSLTwRL4,599
|
|
57
|
+
csv_detective/formats/longitude_wgs_fr_metropole.py,sha256=RzckeV6a1y9UfqqBmVQfdyDHD9Kk7x-vAwt6PATj5A4,597
|
|
58
|
+
csv_detective/formats/lonlat_wgs.py,sha256=zXqT-wWXx99qKfmWGfXfBZsAa5570RyaBTtB9B30QV4,1029
|
|
59
59
|
csv_detective/formats/mois_de_lannee.py,sha256=4_mmdr9S83utVCgPaK_epkeBm2mhwdUWQEoB_Fhdh2o,759
|
|
60
60
|
csv_detective/formats/money.py,sha256=HpjrmfUmbG8sXF557XbYzQ7TLtpNVRgpC991gGokO8I,414
|
|
61
61
|
csv_detective/formats/mongo_object_id.py,sha256=XsiP4iMxfBBIeuL-4g5bm3jgS6yUMJC2X5CmrEJ40oI,296
|
|
@@ -63,14 +63,14 @@ csv_detective/formats/pays.py,sha256=FRvoQwIWiKbm0RC62Sus1X0Y_yJ-cfvdB5RYhkY-4NY
|
|
|
63
63
|
csv_detective/formats/percent.py,sha256=s6eQBMwJr2uyTZMUCK1_ifA0c4Rt2iEe9_E_hKKU_mk,308
|
|
64
64
|
csv_detective/formats/region.py,sha256=CkN7JTsZB1X3bH5xohbtMCxL5BX9MSpith36_1mHMd4,1483
|
|
65
65
|
csv_detective/formats/sexe.py,sha256=yioD4W6EkgUgo74rxn6KLZtN_0XYXtmA4mqVyI7e1mU,387
|
|
66
|
-
csv_detective/formats/siren.py,sha256=
|
|
67
|
-
csv_detective/formats/siret.py,sha256=
|
|
66
|
+
csv_detective/formats/siren.py,sha256=i3e4LDsHkmi3nOjKG52g42AzcMvNPwg-SoHD0EEtKWI,782
|
|
67
|
+
csv_detective/formats/siret.py,sha256=4sRuDKkumDWdBS3lm0RQhq4kSqH4CDXMarchy6ubt-M,1021
|
|
68
68
|
csv_detective/formats/tel_fr.py,sha256=yKCqIlqKO2yKucCoCjYfSjqNKfTjqFcmNXxg6THG0WE,624
|
|
69
69
|
csv_detective/formats/uai.py,sha256=uT5gjdTmoFH9QPZdTFkJgiyuKLW0B6KmT6yqHQeaeOU,711
|
|
70
70
|
csv_detective/formats/url.py,sha256=j6tCbcEzQw7U53ixeeFfhzueN8syVgQsjmAmY7RRWdU,1049
|
|
71
71
|
csv_detective/formats/username.py,sha256=y38OggfWpEQsGi0JnD9QRM30musa29lO6nz-qybR24U,249
|
|
72
72
|
csv_detective/formats/uuid.py,sha256=ekMEFfzQtz0cLudzmu3AoCM0Yf5pu23qAcFNFgHWJ1A,346
|
|
73
|
-
csv_detective/formats/year.py,sha256
|
|
73
|
+
csv_detective/formats/year.py,sha256=-cPDlMERnnv-toy4SI1X7DhBdgSpNovg5nzM5IFxOKE,493
|
|
74
74
|
csv_detective/output/__init__.py,sha256=ALSq_tgX7rGyh--7rmbKz8wHkmResN0h7mNujndow3w,2103
|
|
75
75
|
csv_detective/output/dataframe.py,sha256=Hnd-AY51U0JMACcpuaK9wwO4oCX9Nd7ZLUTqavgJWRA,3406
|
|
76
76
|
csv_detective/output/example.py,sha256=8LWheSBYCeDFfarbnmzBrdCbTd8Alh1U4pfXMKfabOw,8630
|
|
@@ -86,7 +86,7 @@ csv_detective/parsing/load.py,sha256=f-8aKiNpy_47qg4Lq-UZUR4NNrbJ_-KEGvcUQZ8cmb0
|
|
|
86
86
|
csv_detective/parsing/text.py,sha256=uz8wfmNTQnOd_4fjrIZ_5rxmFmgrg343hJh2szB73Hc,1770
|
|
87
87
|
csv_detective/utils.py,sha256=RJ_zFOJ1DRY8HtDrKPiCdNk5gU6-KwOrOKOyfSkBZZY,1118
|
|
88
88
|
csv_detective/validate.py,sha256=CjZXhhDP-n6wGgEqbwrGRqebU8L5bidwnvQp-TbnvFA,5424
|
|
89
|
-
csv_detective-0.10.1.
|
|
90
|
-
csv_detective-0.10.1.
|
|
91
|
-
csv_detective-0.10.1.
|
|
92
|
-
csv_detective-0.10.1.
|
|
89
|
+
csv_detective-0.10.1.dev2590.dist-info/WHEEL,sha256=93kfTGt3a0Dykt_T-gsjtyS5_p8F_d6CE1NwmBOirzo,79
|
|
90
|
+
csv_detective-0.10.1.dev2590.dist-info/entry_points.txt,sha256=1J86TQNCanjsLMboAufdEUla03qEQaC9QmVGYgt2FCQ,57
|
|
91
|
+
csv_detective-0.10.1.dev2590.dist-info/METADATA,sha256=j1vkTQFTY-hR0lLqp-dwtvpm7lQwSVHyO1tJQ6vA124,11064
|
|
92
|
+
csv_detective-0.10.1.dev2590.dist-info/RECORD,,
|
{csv_detective-0.10.1.dev2576.dist-info → csv_detective-0.10.1.dev2590.dist-info}/entry_points.txt
RENAMED
|
File without changes
|