NxPy: Nx Python plugin

This project was generated using Nx.

The nx-python plugin allows users to create a basic python application using nx commands. To add the plugin to your project, just follow these steps:

Getting started

Create a Nx Workspace

Before installing the nx-python plugin, it is required to have a pre-configured Nx Workspace . If you don't, then proceed to create a new one executing the following command:

npx create-nx-workspace python-workspace --preset=empty --cli=nx --nx-cloud true
cd python-workspace

Install the nx-python plugin

yarn add -D @nx-python/nx-python

Adding an application to our workspace

To create a new python application based on this plugin, please execute the following command:

nx g @nx-python/nx-python:app <app-name>

Note: Replace <app-name> with the name of your new application


After creating the <app-name> application using the nx-python plugin. We can execute the build, lint, test and serve nx commands on this new application. Output will be stored on dist/<app-name>/ directory.

Building the app

The build command is going to compile all the python files inside <app-name> directory, using the py_compile native module.

nx build <app-name>

More information here: py_compile

Linting the application

Unfortunately Python doesn't have a native linting module(yet!). nx-python uses the Flake8 module to lint your application. It is required that you install this module beforehand. More info here: Flake8

pip install Flake8

After that you can perform the lint process with:

nx lint <app-name>

Serving the application

This is going to execute the main file in your python application.

nx serve <app-name>

Testing your application

The test command is going to execute all the test units inside your python app. You can add new test unit files if you want, but there are two requirements that you must meet:

  • The filename must include the prefix test
  • Because we are using the native unittest python module to make our tests, you are going to create the tests based on this approach. More info here: unittest

To test your python app, execute the command:

nx test <app-name>