Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exclude unnecessary files from package build #1064

Closed
2 tasks done
ns-rse opened this issue Dec 18, 2024 · 1 comment · Fixed by #1065
Closed
2 tasks done

Exclude unnecessary files from package build #1064

ns-rse opened this issue Dec 18, 2024 · 1 comment · Fixed by #1065
Assignees
Labels
Milestone

Comments

@ns-rse
Copy link
Collaborator

ns-rse commented Dec 18, 2024

In attempting to make the v2.3.0 release the upload to PyPI failed to to the resulting .tar.gz > 100Mb

log

Transparency log entry created with index: 156083276
Uploading distributions to https://upload.pypi.org/legacy/
Uploading topostats-2.3.0-py3-none-any.whl
Uploading topostats-2.3.0.tar.gz
WARNING  Error during upload. Retry with the --verbose option for more details.
ERROR    HTTPError: 400 Bad Request from https://upload.pypi.org/legacy/
         File too large. Limit for project 'topostats' is 100 MB. See
         https://pypi.org/help/#file-size-limit for more information.

On building locally this is indeed the case, the resulting file is 143Mb. Why? Because the build is including a bunch of
files it shouldn't...

❱ python -m build --sdist --no-isolation
* Getting build dependencies for sdist...
running egg_info
writing topostats.egg-info/PKG-INFO
writing dependency_links to topostats.egg-info/dependency_links.txt
writing entry points to topostats.egg-info/entry_points.txt
writing requirements to topostats.egg-info/requires.txt
writing top-level names to topostats.egg-info/top_level.txt
adding license file 'COPYING'
adding license file 'COPYING.LESSER'
writing manifest file 'topostats.egg-info/SOURCES.txt'
* Building sdist...
running sdist
running egg_info
writing topostats.egg-info/PKG-INFO
writing dependency_links to topostats.egg-info/dependency_links.txt
writing entry points to topostats.egg-info/entry_points.txt
writing requirements to topostats.egg-info/requires.txt
writing top-level names to topostats.egg-info/top_level.txt
adding license file 'COPYING'
adding license file 'COPYING.LESSER'
writing manifest file 'topostats.egg-info/SOURCES.txt'
running check
copying files to topostats-2.3.1.dev4+gd907f4f92.d20241218...
copying .git-blame-ignore-revs -> topostats-2.3.1.dev4+gd907f4f92.d20241218
copying .gitattributes -> topostats-2.3.1.dev4+gd907f4f92.d20241218
copying .gitignore -> topostats-2.3.1.dev4+gd907f4f92.d20241218
copying .markdownlint-cli2.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218
copying .pre-commit-config.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218
copying .pylintrc -> topostats-2.3.1.dev4+gd907f4f92.d20241218
copying .readthedocs.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218
copying CITATION.cff -> topostats-2.3.1.dev4+gd907f4f92.d20241218
copying CODE_OF_CONDUCT.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218
copying COPYING -> topostats-2.3.1.dev4+gd907f4f92.d20241218
copying COPYING.LESSER -> topostats-2.3.1.dev4+gd907f4f92.d20241218
copying README.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218
copying contributing.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218
copying pyproject.toml -> topostats-2.3.1.dev4+gd907f4f92.d20241218
copying tox.ini -> topostats-2.3.1.dev4+gd907f4f92.d20241218
copying .github/dependabot.yml -> topostats-2.3.1.dev4+gd907f4f92.d20241218/.github
copying .github/pull_request_template.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/.github
copying .github/ISSUE_TEMPLATE/bug_report.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218/.github/ISSUE_TEMPLATE
copying .github/ISSUE_TEMPLATE/feature_request.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218/.github/ISSUE_TEMPLATE
copying .github/workflows/ORDA.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218/.github/workflows
copying .github/workflows/add-issue-to-project.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218/.github/workflows
copying .github/workflows/pypi.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218/.github/workflows
copying .github/workflows/sphinx_docs_to_gh_pages.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218/.github/workflows
copying .github/workflows/tests.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218/.github/workflows
copying assets/commit.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/assets
copying assets/issues-prs.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/assets
copying assets/pull-request.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/assets
copying assets/push.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/assets
copying assets/pycharm-branch.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/assets
copying assets/stage.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/assets
copying docs/Makefile -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/advanced.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/conf.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/configuration.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/contributing.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/data_dictionary.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/faq.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/glossary.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/index.rst -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/installation.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/introduction.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/make.bat -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/notebooks.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/related_software.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/usage.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/workflow.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs
copying docs/_static/custom.css -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static
copying docs/_static/images/disordered_tracing/diagnostics.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/disordered_tracing
copying docs/_static/images/disordered_tracing/height_bias.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/disordered_tracing
copying docs/_static/images/disordered_tracing/overview.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/disordered_tracing
copying docs/_static/images/disordered_tracing/pruning.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/disordered_tracing
copying docs/_static/images/disordered_tracing/skeletons.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/disordered_tracing
copying docs/_static/images/disordered_tracing/smoothing.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/disordered_tracing
copying docs/_static/images/flattening/flattening_align_rows.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/flattening
copying docs/_static/images/flattening/flattening_binary_mask.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/flattening
copying docs/_static/images/flattening/flattening_final_flattened_image.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/flattening
copying docs/_static/images/flattening/flattening_height_zeroing.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/flattening
copying docs/_static/images/flattening/flattening_pipeline.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/flattening
copying docs/_static/images/flattening/flattening_raw_afm_image.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/flattening
copying docs/_static/images/flattening/flattening_scar_removed.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/flattening
copying docs/_static/images/flattening/flattening_scarred_image.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/flattening
copying docs/_static/images/flattening/flattening_tilt_removal.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/flattening
copying docs/_static/images/flattening/flattening_tilt_removal_full_zrange.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/flattening
copying docs/_static/images/flattening/gaussian_sizes.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/flattening
copying docs/_static/images/flattening/tilt_removed_with_mask.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/flattening
copying docs/_static/images/grain_finding/grain_finding_grain_thresholds.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/grain_finding
copying docs/_static/images/grain_finding/grain_finding_minicircles.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/grain_finding
copying docs/_static/images/grain_finding/grain_finding_size_thresholding.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/grain_finding
copying docs/_static/images/grain_finding/grain_finding_tidy_borders.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/grain_finding
copying docs/_static/images/grain_finding/grain_finding_unet_example.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/grain_finding
copying docs/_static/images/grain_finding/grain_finding_unet_multi_class_example.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/grain_finding
copying docs/_static/images/nodestats/convolved.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/nodestats
copying docs/_static/images/nodestats/diagnostics.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/nodestats
copying docs/_static/images/nodestats/height_trace.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/nodestats
copying docs/_static/images/nodestats/joining.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/nodestats
copying docs/_static/images/nodestats/overview.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/nodestats
copying docs/_static/images/nodestats/pairing.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/nodestats
copying docs/_static/images/nodestats/tidy.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/nodestats
copying docs/_static/images/nodestats/topostats_file.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/nodestats
copying docs/_static/images/ordered_tracing/diagnostics.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/ordered_tracing
copying docs/_static/images/ordered_tracing/ns_3d.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/ordered_tracing
copying docs/_static/images/ordered_tracing/ns_segments.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/ordered_tracing
copying docs/_static/images/ordered_tracing/ns_sep_mols.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/ordered_tracing
copying docs/_static/images/ordered_tracing/ns_tracing.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/ordered_tracing
copying docs/_static/images/ordered_tracing/ns_writhe.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/ordered_tracing
copying docs/_static/images/ordered_tracing/overview.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/ordered_tracing
copying docs/_static/images/ordered_tracing/topostats_file.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/ordered_tracing
copying docs/_static/images/ordered_tracing/ts_circular.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/ordered_tracing
copying docs/_static/images/ordered_tracing/ts_trace.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/ordered_tracing
copying docs/_static/images/splining/overview.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/splining
copying docs/_static/images/splining/rw_schematic.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/splining
copying docs/_static/images/splining/rw_sizes.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/splining
copying docs/_static/images/splining/spl_multi.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/splining
copying docs/_static/images/splining/spl_smooth.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/splining
copying docs/_static/images/splining/topostats_file.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/splining
copying docs/_static/images/thresholding/thresholding_histogram.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_static/images/thresholding
copying docs/_templates/versioning.html -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/_templates
copying docs/advanced/disordered_tracing.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/advanced
copying docs/advanced/flattening.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/advanced
copying docs/advanced/grain_finding.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/advanced
copying docs/advanced/nodestats.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/advanced
copying docs/advanced/ordered_tracing.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/advanced
copying docs/advanced/splining.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/advanced
copying docs/advanced/thresholding.md -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/advanced
copying docs/html/_static/images/imgs.ai -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/html/_static/images
copying docs/html/_static/images/disordered_tracing/overview.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/docs/html/_static/images/disordered_tracing
copying notebooks/OUTDATED-00-Walkthrough-minicircle.ipynb -> topostats-2.3.1.dev4+gd907f4f92.d20241218/notebooks
copying notebooks/OUTDATED-02-Summary-statistics-and-plots.ipynb -> topostats-2.3.1.dev4+gd907f4f92.d20241218/notebooks
copying notebooks/OUTDATED-03-Plotting-scans.ipynb -> topostats-2.3.1.dev4+gd907f4f92.d20241218/notebooks
copying tests/conftest.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_entry_all_in_one.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_entry_point.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_filters.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_filters_minicircle.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_grains.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_grains_minicircle.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_grainstats.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_grainstats_minicircle.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_io.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_logs.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_plotting.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_plottingfuncs.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_processing.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_run_modules.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_scars.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_statistics.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_thresholds.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_unet_masking.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_utils.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/test_validation.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests
copying tests/_regtest_outputs/test_grainstats_minicircle.test_grainstats_regression.out -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/_regtest_outputs
copying tests/_regtest_outputs/test_plotting.test_computeStats.out -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/_regtest_outputs
copying tests/_regtest_outputs/test_processing.test_process_scan_above.out -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/_regtest_outputs
copying tests/_regtest_outputs/test_processing.test_process_scan_above_height_profiles.out -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/_regtest_outputs
copying tests/_regtest_outputs/test_processing.test_process_scan_below.out -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/_regtest_outputs
copying tests/_regtest_outputs/test_processing.test_process_scan_below_height_profiles.out -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/_regtest_outputs
copying tests/_regtest_outputs/test_processing.test_process_scan_both.out -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/_regtest_outputs
copying tests/measure/conftest.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/measure
copying tests/measure/test_curvature.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/measure
copying tests/measure/test_feret.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/measure
copying tests/measure/test_geometry.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/measure
copying tests/measure/test_height_profiles.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/measure
copying tests/resources/IO_binary_file.bin -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_connected_nodes.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_image.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_0_avg_image.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_0_branch_image.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_0_masked_image.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_0_matched_branches_analyse_node_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_0_matched_branches_join_matching_branches_through_node.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_0_ordered_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_0_reduced_node_area.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_0_reduced_skeleton_graph.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_1_masked_image.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_1_matched_branches_analyse_node_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_1_matched_branches_join_matching_branches_through_node.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_1_ordered_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_1_reduced_skeleton_graph.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_2_masked_image.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_2_matched_branches_analyse_node_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_2_matched_branches_join_matching_branches_through_node.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_2_ordered_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_2_reduced_skeleton_graph.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_3_masked_image.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_3_matched_branches_analyse_node_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_3_matched_branches_join_matching_branches_through_node.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_3_ordered_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_3_reduced_skeleton_graph.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_4_masked_image.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_4_matched_branches_analyse_node_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_4_matched_branches_join_matching_branches_through_node.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_4_ordered_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_4_reduced_skeleton_graph.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_node_centre_mask.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_skeleton.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/catenane_smoothed_mask.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/dna_tracing.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/dnatracing_image_circular.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/dnatracing_image_linear.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/dnatracing_mask_circular.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/dnatracing_mask_linear.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/example_catenanes.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/example_catenanes_labelled_grain_mask_thresholded.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/example_rep_int.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/example_rep_int_labelled_grain_mask_thresholded.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/file.asd -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/file.gwy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/file.jpk -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/file.topostats -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/image_random_col_medians.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/image_random_col_medians_masked.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/image_random_mask.csv.bz2 -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/image_random_median_flattened.csv.bz2 -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/image_random_remove_quadratic.csv.bz2 -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/image_random_remove_x_y_tilt.csv.bz2 -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/image_random_row_medians.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/image_random_row_medians_masked.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/minicircle.spm -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/minicircle.spm1 -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/minicircle2.ibw -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/minicircle_cropped_flattened.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/minicircle_cropped_grainstats.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/minicircle_cropped_masks_above.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/minicircle_cropped_masks_above_background.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/minicircle_cropped_masks_below.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/minicircle_cropped_masks_below_background.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/minicircle_default_all_statistics.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/minicircles.asd -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/my_custom.mplstyle -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/nodestats_analyse_nodes_catenane_all_connected_nodes.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/nodestats_analyse_nodes_catenane_image_dict.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/nodestats_analyse_nodes_catenane_node_dict.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/process_scan_expected_above_height_profiles.pickle -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/process_scan_expected_below_height_profiles.pickle -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/process_scan_topostats_file_regtest.topostats -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/test.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/test.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/test_cropped_grains.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/test_median_flatten_0.2.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/test_median_flatten_0.5.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/test_partial_config.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/test_scars_synthetic_mark_scars.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/test_scars_synthetic_remove_marked_scars.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/test_scars_synthetic_remove_scars.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/test_scars_synthetic_remove_scars_mask.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/test_scars_synthetic_scar_image.npy -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/toposum_all_statistics_multiple_directories.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/toposum_all_statistics_single_directory.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources
copying tests/resources/img/test_high_dpi.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img
copying tests/resources/img/test_mask_cmap.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img
copying tests/resources/img/test_mask_dilation.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img
copying tests/resources/img/test_minicircle_dnatracing_skeletons_plot.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img
copying tests/resources/img/test_plot_and_save_bounding_box.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img
copying tests/resources/img/test_plot_and_save_colorbar_afmhot.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img
copying tests/resources/img/test_plot_and_save_colorbar_and_axes.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img
copying tests/resources/img/test_plot_and_save_no_axes.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img
copying tests/resources/img/test_plot_and_save_no_axes_no_colorbar.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img
copying tests/resources/img/test_plot_and_save_no_colorbar.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img
copying tests/resources/img/test_plot_and_save_non_square_bounding_box.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img
copying tests/resources/img/test_plot_and_save_zrange.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img
copying tests/resources/img/test_plot_curvatures.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img
copying tests/resources/img/test_plot_histogram_and_save.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img
copying tests/resources/img/distributions/test_plot_hist.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/distributions
copying tests/resources/img/distributions/test_plot_hist_kde.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/distributions
copying tests/resources/img/distributions/test_plot_hist_kde_multiple_directories.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/distributions
copying tests/resources/img/distributions/test_plot_hist_multiple_directories.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/distributions
copying tests/resources/img/distributions/test_plot_kde.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/distributions
copying tests/resources/img/distributions/test_plot_kde_multiple_directories.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/distributions
copying tests/resources/img/distributions/test_plot_violin.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/distributions
copying tests/resources/img/distributions/test_plot_violin_multiple_directories.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/distributions
copying tests/resources/img/feret/test_plot_feret_Exclude calipers.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/feret
copying tests/resources/img/feret/test_plot_feret_Exclude hull.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/feret
copying tests/resources/img/feret/test_plot_feret_Exclude max feret.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/feret
copying tests/resources/img/feret/test_plot_feret_Exclude min feret.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/feret
copying tests/resources/img/feret/test_plot_feret_Exclude points.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/feret
copying tests/resources/img/feret/test_plot_feret_Exclude triangle heights.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/feret
copying tests/resources/img/feret/test_plot_feret_Plot everything.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/feret
copying tests/resources/img/height_profiles/test_plot_height_profiles_Four arrays of different length (one even, two odd).png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/height_profiles
copying tests/resources/img/height_profiles/test_plot_height_profiles_Single height profile.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/height_profiles
copying tests/resources/img/height_profiles/test_plot_height_profiles_Three arrays of different length (one even, one odd).png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/height_profiles
copying tests/resources/img/height_profiles/test_plot_height_profiles_Two arrays of different length (diff in length is even).png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/height_profiles
copying tests/resources/img/height_profiles/test_plot_height_profiles_Two arrays of different length (diff in length is odd).png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/height_profiles
copying tests/resources/img/height_profiles/test_plot_height_profiles_Two arrays of same length.png -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/img/height_profiles
copying tests/resources/test_image/minicircle_small.topostats -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/test_image
copying tests/resources/tracing/disordered_tracing/catenanes_disordered_tracing_all_images.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/disordered_tracing
copying tests/resources/tracing/disordered_tracing/catenanes_disordered_tracing_crop_data.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/disordered_tracing
copying tests/resources/tracing/disordered_tracing/rep_int_disordered_tracing_all_images.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/disordered_tracing
copying tests/resources/tracing/disordered_tracing/rep_int_disordered_tracing_crop_data.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/disordered_tracing
copying tests/resources/tracing/nodestats/catenanes_nodestats_all_images.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/nodestats
copying tests/resources/tracing/nodestats/catenanes_nodestats_branch_images.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/nodestats
copying tests/resources/tracing/nodestats/catenanes_nodestats_data.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/nodestats
copying tests/resources/tracing/nodestats/catenanes_nodestats_grainstats.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/nodestats
copying tests/resources/tracing/nodestats/rep_int_nodestats_all_images_no_pair_odd_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/nodestats
copying tests/resources/tracing/nodestats/rep_int_nodestats_all_images_pair_odd_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/nodestats
copying tests/resources/tracing/nodestats/rep_int_nodestats_branch_images_no_pair_odd_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/nodestats
copying tests/resources/tracing/nodestats/rep_int_nodestats_branch_images_pair_odd_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/nodestats
copying tests/resources/tracing/nodestats/rep_int_nodestats_data_no_pair_odd_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/nodestats
copying tests/resources/tracing/nodestats/rep_int_nodestats_data_pair_odd_branches.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/nodestats
copying tests/resources/tracing/nodestats/rep_int_nodestats_grainstats_no_pair_odd_branches.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/nodestats
copying tests/resources/tracing/nodestats/rep_int_nodestats_grainstats_pair_odd_branches.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/nodestats
copying tests/resources/tracing/ordered_tracing/catenanes_ordered_tracing_data.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/ordered_tracing
copying tests/resources/tracing/ordered_tracing/catenanes_ordered_tracing_full_images.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/ordered_tracing
copying tests/resources/tracing/ordered_tracing/catenanes_ordered_tracing_grainstats.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/ordered_tracing
copying tests/resources/tracing/ordered_tracing/catenanes_ordered_tracing_molstats.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/ordered_tracing
copying tests/resources/tracing/ordered_tracing/rep_int_ordered_tracing_data.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/ordered_tracing
copying tests/resources/tracing/ordered_tracing/rep_int_ordered_tracing_full_images.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/ordered_tracing
copying tests/resources/tracing/ordered_tracing/rep_int_ordered_tracing_grainstats.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/ordered_tracing
copying tests/resources/tracing/ordered_tracing/rep_int_ordered_tracing_molstats.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/ordered_tracing
copying tests/resources/tracing/splining/catenanes_splining_data.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/splining
copying tests/resources/tracing/splining/catenanes_splining_grainstats.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/splining
copying tests/resources/tracing/splining/catenanes_splining_molstats.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/splining
copying tests/resources/tracing/splining/rep_int_splining_data.pkl -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/splining
copying tests/resources/tracing/splining/rep_int_splining_grainstats.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/splining
copying tests/resources/tracing/splining/rep_int_splining_molstats.csv -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/resources/tracing/splining
copying tests/tracing/conftest.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/tracing
copying tests/tracing/test_disordered_tracing.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/tracing
copying tests/tracing/test_dnacurvature.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/tracing
copying tests/tracing/test_nodestats.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/tracing
copying tests/tracing/test_ordered_tracing.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/tracing
copying tests/tracing/test_pruning.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/tracing
copying tests/tracing/test_skeletonize.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/tracing
copying tests/tracing/test_splining.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/tracing
copying tests/tracing/test_tracing_dna.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/tracing
copying tests/tracing/_regtest_outputs/test_disordered_tracing.test_trace_image_disordered_dataframes[catenane].out -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/tracing/_regtest_outputs
copying tests/tracing/_regtest_outputs/test_disordered_tracing.test_trace_image_disordered_dataframes[replication_intermediate].out -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/tracing/_regtest_outputs
copying tests/tracing/_regtest_outputs/test_dnatracing.test_minicircle_dnatracing_skeletons.out -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/tracing/_regtest_outputs
copying tests/tracing/_regtest_outputs/test_dnatracing.test_tracestats.out -> topostats-2.3.1.dev4+gd907f4f92.d20241218/tests/tracing/_regtest_outputs
copying topostats/__init__.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/__main__.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/_version.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/default_config.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/entry_point.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/filters.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/grains.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/grainstats.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/io.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/plotting.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/plotting_dictionary.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/plottingfuncs.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/processing.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/run_modules.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/scars.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/simple_config.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/statistics.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/summary_config.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/theme.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/thresholds.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/topostats.mplstyle -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/unet_masking.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/utils.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/validation.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats/var_to_label.yaml -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats
copying topostats.egg-info/PKG-INFO -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats.egg-info
copying topostats.egg-info/SOURCES.txt -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats.egg-info
copying topostats.egg-info/dependency_links.txt -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats.egg-info
copying topostats.egg-info/entry_points.txt -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats.egg-info
copying topostats.egg-info/requires.txt -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats.egg-info
copying topostats.egg-info/top_level.txt -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats.egg-info
copying topostats/logs/__init__.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats/logs
copying topostats/logs/logs.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats/logs
copying topostats/measure/curvature.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats/measure
copying topostats/measure/feret.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats/measure
copying topostats/measure/geometry.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats/measure
copying topostats/measure/height_profiles.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats/measure
copying topostats/tracing/__init__.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats/tracing
copying topostats/tracing/disordered_tracing.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats/tracing
copying topostats/tracing/dnacurvature.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats/tracing
copying topostats/tracing/nodestats.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats/tracing
copying topostats/tracing/ordered_tracing.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats/tracing
copying topostats/tracing/pruning.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats/tracing
copying topostats/tracing/skeletonize.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats/tracing
copying topostats/tracing/splining.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats/tracing
copying topostats/tracing/tracingfuncs.py -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats/tracing
copying topostats.egg-info/SOURCES.txt -> topostats-2.3.1.dev4+gd907f4f92.d20241218/topostats.egg-info
Writing topostats-2.3.1.dev4+gd907f4f92.d20241218/setup.cfg
Creating tar archive
removing 'topostats-2.3.1.dev4+gd907f4f92.d20241218' (and everything under it)
Successfully built topostats-2.3.1.dev4+gd907f4f92.d20241218.tar.gz

Note the presence of...

  • tests/*
  • assets/*
  • .* files (multiple)
  • docs/*
  • notebooks/*

This hasn't caused problems in the past but recent work, and primarily the tests to accompany them have expanded the
directory size of tests/ which is the prime source of bloat.

cd tests
 ❱ du -h --max-depth=2
32K	./_regtest_outputs
660K	./measure/__pycache__
844K	./measure
24K	./tracing/_regtest_outputs
1.7M	./tracing/__pycache__
2.1M	./tracing
22M	./resources/processed
3.5M	./resources/img
40K	./resources/test_image
50M	./resources/tracing
309M	./resources
4.3M	./__pycache__
316M	.

Our current configuration for setuptools and finding packages resides in pyproject.toml and reads...

[tool.setuptools]
include-package-data = true

[tool.setuptools.packages.find]
where = ["."]
include = ["topostats"]
exclude = ["tests"]
namespaces = false

[tool.setuptools.package-data]
topostats = ["*.yaml", "*.mplstyle"]

Which should have only looked in topostats but clearly I've not understood the structure correctly.

Documentation
clearly states that this can happen using a "flat" layout as we do here in TopoStats but the way to avoid this is to
correctly configure the include / exclude options so they need revising.

At the same time though we can, I think, safely remove the assets/ directory which contains some images of screenshots
using and IDE that were used as instructions.

  • Remove assets/ directory.
  • Correctly configure tool.setuptools.packages.find to include only topostats/ and exclude...
    • tests/
    • .* files
    • .github/
    • .docs/
    • .notebooks/
@ns-rse ns-rse added the v2.3.0 label Dec 18, 2024
@ns-rse ns-rse added this to the v2.3.0 milestone Dec 18, 2024
@ns-rse ns-rse self-assigned this Dec 18, 2024
@ns-rse
Copy link
Collaborator Author

ns-rse commented Dec 18, 2024

Confusingly the
documentation
seems to indicate that test / tests are part of the FlatLayoutModuleFinder.DEFAUT_EXCLUDE set which contradicts
the later statement in that page and also doesn't appear to be the case here!

Also we have namespaces = false included which according to the note under finding simple
packages
"will prevent
any folder without an __init__.py file from being scanned.
" and yet we have multiple such folders (assets/
notebooks/ etc. see above) being included.

Investigation

Manually calling setuptools.find_packages() with the arguments defined in pyproject.toml (see above)...

import setuptools

In [6]: import setuptools

In [7]: ?setuptools.find_packages
Signature:
setuptools.find_packages(
    where: Union[str, os.PathLike[str]] = '.',
    exclude: Iterable[str] = (),
    include: Iterable[str] = ('*',),
) -> List[str]
Docstring:
Return a list of all Python items (packages or modules, depending on
the finder implementation) found within directory 'where'.

'where' is the root directory which will be searched.
It should be supplied as a "cross-platform" (i.e. URL-style) path;
it will be converted to the appropriate local path syntax.

'exclude' is a sequence of names to exclude; '*' can be used
as a wildcard in the names.
When finding packages, 'foo.*' will exclude all subpackages of 'foo'
(but not 'foo' itself).

'include' is a sequence of names to include.
If it's specified, only the named items will be included.
If it's not specified, all found items will be included.
'include' can contain shell style wildcard patterns just like
'exclude'.
File:      ~/.virtualenvs/topostats-311b/lib/python3.11/site-packages/setuptools/discovery.py
Type:      method

In [11]: setuptools.find_packages(where=".")
Out[11]: ['topostats', 'topostats.logs', 'topostats.tracing']

In [12]: setuptools.find_packages(where=".", include=["topostats"])
Out[12]: ['topostats']

In [13]: setuptools.find_packages(where=".", include=["topostats"], exclude=["tests"])
Out[13]: ['topostats']

In [14]:

This looks ok to me, the last call, which is the three arugments defined in pyproject.toml only returns topostats.wor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant