hdx-python-utilities 4.0.7__tar.gz → 4.0.8__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.
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/PKG-INFO +1 -1
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/_version.py +2 -2
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/saver.py +9 -3
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_saver.py +54 -1
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/.github/workflows/publish-test.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/.github/workflows/publish.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/.github/workflows/run-python-tests.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/.gitignore +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/.pre-commit-config.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/LICENSE +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/README.md +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/documentation/.readthedocs.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/documentation/index.md +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/documentation/mkdocs.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/pyproject.toml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/__init__.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/base_downloader.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/compare.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/dateparse.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/dictandlist.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/downloader.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/easy_logging.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/email.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/encoding.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/error_handler.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/errors_onexit.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/file_hashing.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/frictionless_wrapper.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/html.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/loader.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/matching.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/path.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/retriever.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/session.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/state.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/text.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/url.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/useragent.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/uuid.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/zip_crc.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/compare/test_csv_processing.csv +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/compare/test_csv_processing2.csv +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/empty.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/hdx_config.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/hdx_config.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/hdx_email_configuration.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/hdx_email_configuration.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/json_csv.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/logging_config.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/logging_config.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/project_configuration.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/project_configuration.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/smtp_config.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/smtp_config.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/user_agent_config.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/user_agent_config2.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/user_agent_config3.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/user_agent_config_wrong.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/basicauth.txt +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/bearertoken.txt +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/extra_params.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/extra_params.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/extra_params_tree.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/test_csv_processing.csv +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/test_csv_processing_blanks.csv +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/test_data.csv +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/test_data.xlsx +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/test_data1.csv/empty.txt +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/test_data2.csv +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/test_json_processing.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/test_xls_processing.xls +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/test_xlsx_processing.xlsx +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/file_hashing/bad_header.zip +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/file_hashing/bad_index.xlsx +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/file_hashing/empty.zip +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/file_hashing/test.xlsx +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/file_hashing/test_shapefile.zip +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/file_hashing/valid_sig_invalid_body.zip +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/html/response.html +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/loader/empty.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/loader/empty.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/loader/empty_list.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/retriever/fallbacks/test.csv +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/retriever/fallbacks/test.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/retriever/fallbacks/test.txt +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/retriever/fallbacks/test.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/retriever/retriever-test.csv +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/retriever/test.csv +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/retriever/test.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/retriever/test.txt +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/retriever/test.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/retriever/test_hxl.csv +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/out.csv +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/out.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/out2.csv +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/out2.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/out5.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/out6.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/out7.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/out8.csv +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/out8.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/pretty-false_sortkeys-false.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/pretty-false_sortkeys-false.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/pretty-false_sortkeys-true.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/pretty-false_sortkeys-true.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/pretty-true_sortkeys-false.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/pretty-true_sortkeys-false.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/pretty-true_sortkeys-true.json +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/saver/pretty-true_sortkeys-true.yaml +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/state/analysis_dates.txt +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/state/last_build_date.txt +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/test_data.csv +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/text/text1.txt +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/text/text2.txt +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/conftest.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_compare.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_dateparse.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_dictandlist.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_downloader.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_easy_logging.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_email.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_encoding.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_error_handler.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_file_hashing.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_html.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_loader.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_matching.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_path.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_retriever.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_state.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_text.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_url.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_useragent.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_uuid.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_zip_crc.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/utils.py +0 -0
- {hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: hdx-python-utilities
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.8
|
|
4
4
|
Summary: HDX Python Utilities for streaming tabular data, date and time handling and other helpful functions
|
|
5
5
|
Project-URL: Homepage, https://github.com/OCHA-DAP/hdx-python-utilities
|
|
6
6
|
Author-email: Michael Rans <rans@email.com>
|
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '4.0.
|
|
32
|
-
__version_tuple__ = version_tuple = (4, 0,
|
|
31
|
+
__version__ = version = '4.0.8'
|
|
32
|
+
__version_tuple__ = version_tuple = (4, 0, 8)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
|
@@ -330,9 +330,15 @@ def save_iterable(
|
|
|
330
330
|
if isinstance(row, dict):
|
|
331
331
|
has_header = True
|
|
332
332
|
row = row_function(row)
|
|
333
|
-
|
|
334
|
-
row
|
|
335
|
-
|
|
333
|
+
try:
|
|
334
|
+
while row is None:
|
|
335
|
+
row = next(rows)
|
|
336
|
+
row = row_function(row)
|
|
337
|
+
except StopIteration:
|
|
338
|
+
if not no_empty and headers:
|
|
339
|
+
newrows = [headers]
|
|
340
|
+
write_rows(newrows, None, None)
|
|
341
|
+
return newrows
|
|
336
342
|
if columns:
|
|
337
343
|
row = {k: row[k] for k in columns if k in row}
|
|
338
344
|
newrows.append(row)
|
|
@@ -296,7 +296,7 @@ class TestLoader:
|
|
|
296
296
|
filename = "out8.json"
|
|
297
297
|
assert_files_same(saverfolder / filename, output_dir / filename)
|
|
298
298
|
|
|
299
|
-
def
|
|
299
|
+
def test_save_iterable_lists(self):
|
|
300
300
|
list_of_tuples = [(1, 2, 3, "a"), (4, 5, 6, "b"), (7, 8, 9, "c")]
|
|
301
301
|
list_of_lists = [[1, 2, 3, "a"], [4, 5, 6, "b"], [7, 8, 9, "c"]]
|
|
302
302
|
list_of_dicts = [
|
|
@@ -457,6 +457,15 @@ class TestLoader:
|
|
|
457
457
|
["7", "8", "9", "c"],
|
|
458
458
|
]
|
|
459
459
|
|
|
460
|
+
def test_save_iterable_dicts(self):
|
|
461
|
+
with temp_dir(
|
|
462
|
+
"TestSaveIterable",
|
|
463
|
+
delete_on_success=True,
|
|
464
|
+
delete_on_failure=False,
|
|
465
|
+
) as tempdir:
|
|
466
|
+
filename = "test_save_iterable_to_csv.csv"
|
|
467
|
+
filepath = tempdir / filename
|
|
468
|
+
|
|
460
469
|
list_of_dicts = [
|
|
461
470
|
{"h1": 1, "h2": 2, "h3": 3, "h4": "a"},
|
|
462
471
|
{"h1": 4, "h2": 5, "h3": 6, "h4": "b"},
|
|
@@ -554,3 +563,47 @@ class TestLoader:
|
|
|
554
563
|
newll = read_list_from_csv(str(filepath))
|
|
555
564
|
remove(filepath)
|
|
556
565
|
assert newll == [["h1", "h3", "h4"]]
|
|
566
|
+
|
|
567
|
+
def process_row(row):
|
|
568
|
+
return None
|
|
569
|
+
|
|
570
|
+
rows = save_iterable(
|
|
571
|
+
filepath,
|
|
572
|
+
list_of_dicts,
|
|
573
|
+
headers=["h1", "h2", "h3", "h4"],
|
|
574
|
+
row_function=process_row,
|
|
575
|
+
)
|
|
576
|
+
assert rows == []
|
|
577
|
+
|
|
578
|
+
rows = save_iterable(
|
|
579
|
+
filepath,
|
|
580
|
+
list_of_dicts,
|
|
581
|
+
headers=["h1", "h2", "h3", "h4"],
|
|
582
|
+
row_function=process_row,
|
|
583
|
+
no_empty=False,
|
|
584
|
+
)
|
|
585
|
+
assert rows == [["h1", "h2", "h3", "h4"]]
|
|
586
|
+
newll = read_list_from_csv(filepath)
|
|
587
|
+
remove(filepath)
|
|
588
|
+
assert newll == [
|
|
589
|
+
["h1", "h2", "h3", "h4"],
|
|
590
|
+
]
|
|
591
|
+
|
|
592
|
+
def process_row(row):
|
|
593
|
+
if 5 in row.values():
|
|
594
|
+
return None
|
|
595
|
+
return row
|
|
596
|
+
|
|
597
|
+
save_iterable(
|
|
598
|
+
filepath,
|
|
599
|
+
list_of_dicts,
|
|
600
|
+
headers=["h1", "h2", "h3", "h4"],
|
|
601
|
+
row_function=process_row,
|
|
602
|
+
)
|
|
603
|
+
newll = read_list_from_csv(filepath)
|
|
604
|
+
remove(filepath)
|
|
605
|
+
assert newll == [
|
|
606
|
+
["h1", "h2", "h3", "h4"],
|
|
607
|
+
["1", "2", "4", "a"],
|
|
608
|
+
["7", "8", "10", "c"],
|
|
609
|
+
]
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/.github/workflows/publish-test.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/.github/workflows/run-python-tests.yaml
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
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/base_downloader.py
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
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/error_handler.py
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/errors_onexit.py
RENAMED
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/src/hdx/utilities/frictionless_wrapper.py
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/hdx_config.json
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/hdx_config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/json_csv.yaml
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/logging_config.json
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/logging_config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/smtp_config.json
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/config/smtp_config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/basicauth.txt
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/bearertoken.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/test_data.csv
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/test_data.xlsx
RENAMED
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/downloader/test_data2.csv
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/file_hashing/bad_header.zip
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/file_hashing/bad_index.xlsx
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/file_hashing/empty.zip
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/file_hashing/test.xlsx
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/loader/empty_list.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/retriever/test.json
RENAMED
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/retriever/test.yaml
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/retriever/test_hxl.csv
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/state/analysis_dates.txt
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/fixtures/state/last_build_date.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_compare.py
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_dateparse.py
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_dictandlist.py
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_downloader.py
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_easy_logging.py
RENAMED
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_encoding.py
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_error_handler.py
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_file_hashing.py
RENAMED
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_loader.py
RENAMED
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_matching.py
RENAMED
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_retriever.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_useragent.py
RENAMED
|
File without changes
|
|
File without changes
|
{hdx_python_utilities-4.0.7 → hdx_python_utilities-4.0.8}/tests/hdx/utilities/test_zip_crc.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|