nwa

A collection of network analyses


Keywords
python, network, analysis
License
MIT
Install
pip install nwa==0.0.1

Documentation

github latest release pypi latest package docker latest image project license

nwa CI nwa CD security scan pre-commit

code coverage code alerts code quality code style

nwa

nwa: A collection of network analyses

Contents

  1. Use Case
  2. Configuration
  3. Development
  4. Testing
  5. Versioning
  6. Deployment
  7. Production

Use Case

A collection of network analyses implementations.
Input: [TODO].
Output: [TODO].

Requirements

  • [TODO]

Assumptions

  • [TODO]

Design

[TODO]

Configuration

Behaviour of the application can be configured via Environment Variables.

Environment Variable Description Type Default Value
NWA_LOG_LEVEL Level of logging - overrides verbose/quiet flag string -
NWA_LOG_DIR Directory to save logs string -
NWA_BIN_DIR Directory to save any output (bin) string bin

Development

Configure for local development

  • Clone repo on your local machine
  • Install conda or miniconda
  • Create your local project environment (based on conda, poetry, pre-commit):
    $ make env
  • (Optional) Update existing local project environment:
    $ make env-update

Run locally

On a terminal, run the following (execute on project's root directory):

  • Activate project environment:
    $ . ./scripts/helpers/environment.sh
  • Run the CLI using poetry:
    $ poetry run nwa

Contribute

[ Not Available ]

Testing

(part of CI/CD)

[ Work in progress... ]

To run the tests, open a terminal and run the following (execute on project's root directory):

  • Activate project environment:
    $ . ./scripts/helpers/environment.sh
  • To run pytest:
    $ make test
  • To check test coverage:
    $ make test-coverage

Versioning

Increment the version number:
$ poetry version {bump rule}
where valid bump rules are:

  1. patch
  2. minor
  3. major
  4. prepatch
  5. preminor
  6. premajor
  7. prerelease

Changelog

Use CHANGELOG.md to track the evolution of this package.
The [UNRELEASED] tag at the top of the file should always be there to log the work until a release occurs.

Work should be logged under one of the following subtitles:

  • Added
  • Changed
  • Fixed
  • Removed

On a release, a version of the following format should be added to all the current unreleased changes in the file.
## [major.minor.patch] - YYYY-MM-DD

Deployment

Pip package

On a terminal, run the following (execute on project's root directory):

  • Activate project environment:
    $ . ./scripts/helpers/environment.sh
  • To build pip package:
    $ make build-package
  • To publish pip package (requires credentials to PyPi):
    $ make publish-package

Docker image

On a terminal, run the following (execute on project's root directory):

  • Activate project environment:
    $ . ./scripts/helpers/environment.sh
  • To build docker image:
    $ make build-docker

Production

For production, a Docker image is used. This image is published publicly on docker hub.

  • First pull image from docker hub:
    $ docker pull nichelia/nwa:[version]
  • First pull image from docker hub:
    $ docker run --rm -it -v ~/nwa_bin:/usr/src/bin nichelia/nwa:[version]
    This command mounts the application's bin (outcome) to user's root directory under nwa_bin folder.

where version is the published application version (e.g. 0.1.0)