This python package allows you to validate npm package names. It is a python implementation of the official npm/validate-npm-package-name package for javascript.
$ pip install npm_package_validator
$ npm_package_validator my-package
Validate an npm package name like this:
import npm_package_validator
# Fails! Uppercase is not allowed for new packages
assert npm_package_validator.valid_new_package('MY-package')
However, upper case once has been allowed and you can also validate old, existing packages:
assert npm_package_validator.valid_old_package('MY-package') # Succeeds!
When using the CLI, you can use the --old
flag.
If you want to know whats wrong with a name, use:
from npm_package_validator.validate import validate_package
errors, warnings = validate_package('MY-package')
print("Errors: %s" % ", ".join(errors))
print("Warnings: %s" % ", ".join(warnings))
A valid new package name must have neither errors
nor warnings
. Existing packages can have warnings
, as the npm validation rules have become stricter over time.
This package is a port from the official npm/validate-npm-package-name
For detailed instructions see CONTRIBUTING.
You can run tests with
$ invoke test
$ invoke test --min-coverage=90 # Fail when code coverage is below 90%
$ invoke type-check # Run mypy type checks
Lint and format the code with
$ invoke format
$ invoke lint
All of this happens when you run invoke pre-commit
.
This project is still in the alpha stage and should not be considered production ready.