Skip to content

Add setup.py and distribute through pip #1

@hanslovsky

Description

@hanslovsky

Certain parts of CNNectome can be useful as library and should be distributed as such. Distribution (of the relevant) as a library would make CNNectome reusable and allow for better reproducible builds (i.e. create docker containers or requirements.txt specifying the version of CNNectome to be fetched from PyPI). Also, it would allow for easier separation of scripts from library code. This should be as simple as just adding a setup.py file at the top level and specifying the packages as well as dependencies.

In particular, I am talking about networks/*.py but there might be other parts of CNNectome for which that is true.

The only difficulty would be to introduce another level in the directory tree for more unique imports in python, e.g. change

CNNectome
├── docker_start_scripts
├── multi_scale_aff
│   └── multi_scale_aff
├── networks
│   ├── autoencoder.py
│   ├── custom_fw_unet.py
│   ├── custom_ops.py
│   ├── __init__.py
│   ├── ops2d.py
│   ├── ops3d.py
│   ├── __pycache__
│   ├── scale_net.py
│   ├── strided_autoencoder.py
│   ├── strided_unet.py
│   ├── unet2d.py
│   ├── unet_auto.py
│   ├── unet_class.py
│   └── unet.py
├── training
│   ├── anisotropic
│   └── isotropic
├── utils
└── validation

into

CNNectome
├── CNNectome
│   ├── networks
│   │   ├── autoencoder.py
│   │   ├── custom_fw_unet.py
│   │   ├── custom_ops.py
│   │   ├── __init__.py
│   │   ├── ops2d.py
│   │   ├── ops3d.py
│   │   ├── scale_net.py
│   │   ├── strided_autoencoder.py
│   │   ├── strided_unet.py
│   │   ├── unet2d.py
│   │   ├── unet_auto.py
│   │   ├── unet_class.py
│   │   └── unet.py
├── docker_start_scripts
├── multi_scale_aff
│   └── multi_scale_aff
├── networks
│   ├── anisotropic
│   └── isotropic
├── training
│   ├── anisotropic
│   │   └── log
│   └── isotropic
├── utils
└── validation

(only relevant files shown, only showing changes for networks)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions