Nimporter

Latest version: v2.0.0

Safety actively analyzes 629599 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 2

1.0.0

After **2 months** of hard work, I am proud to announce the release of **Nimporter version 1.0.0**! I have now implemented all of features necessary to consider Nimporter complete but will continue to provide bug fixes and small enhancements as they become necessary. The greatest feature in this release is the ability to **distribute libraries using Nim code without requiring the end user to install a Nim compiler**. Here is a list of the new features introduced in this version:

* Distribute libraries with Nim code without requiring end users to install a Nim compiler!
* Much easier installation: `pip install nimporter`.
* Nimporter can work with Nim installed via Choosenim or manually.
* Nimporter finds Nim standard library automatically.
* Entire Nim projects with `.nimble` dependencies are now officially supported.
* Binary (wheel) distributions are officially supported and are effortless to create (**1 extra line of code**).
* Source distributions now directly imply that they contain bundled Nim source files.
* Absolute control over CLI args are 100% supported for an arbitrary number of platforms and situations.
* Arbitrarily complex namespacing is maintained for libraries packaged with Nim code.
* **44 unit tests** and **5 integration tests**.
* **94%** code coverage
* Official Nimporter CLI for cleaning cached builds and compiling extensions in the terminal.
* Generated [documentation](https://pebaz.github.io/nimporter/index.html).
* New logo. 😃

> There is now no excuse not to make your Python code more performant using Nim. All of the hard work has been done for you: simply plop a Nim source file into your project, `import nimporter`, and then directly import your Nim code. You can now think of Nimporter as [Cython](https://cython.org/) for Nim, but seamless.

Furthermore, **none of your end users have to install a Nim compiler** (or a C compiler for that matter). Distribution is **1 extra line of code**.

Using Nim with Python now involves the same effort as writing pure Python.

*Welcome to Nimporter **1.0.0**.*

0.1.5

Includes changes from

* Pebaz
* WesleyYue

Changelog

* Bugfix: Fixed bug when importing `importlib.util` as noted [here](https://stackoverflow.com/questions/39660934/error-when-using-importlib-util-to-check-for-library/39661116).
* Improvement: Improved breadth of supported Python versions by using custom hash function rather than `importlib.util.source_hash()` introduced in Python 3.7+.

0.1.4

Includes changes from

* Pebaz

Changelog

* Bugfix: Fix critical bug on Windows caused by Nim outputting MSVC banner to STDERR which would be raised as an exception by Nimporter.

0.1.3

Includes changes from

* Pebaz

Changelog

* Improvement: Added documentation on how to distribute Nim source files along with a library.
* Improvement: Nimporter now has a `IGNORE_CACHE` parameter that forces the rebuild of any Nim file while set.
* Bugfix: Libraries distributed with Nim source files can now import those files using relative paths.

0.1.2

Includes changes from

* Pebaz

Changelog

* Improvement: Uploaded to PyPi.
* Improvement: Install via PyPi using: `pip install nimporter`.
* Improvement: Updated documentation to reflect the new preferred installation method.

0.1.1

Includes changes from

* Pebaz
* Ivan1248
* paul-nameless

Changelog

- Bugfix: Compile modules in current working directories that contain spaces in the preceding path.
- Bugfix: Typo in readme.
- Improvement: Simplified hash function to use standard library implementation.
- Improvement: Used simpler `pathlib.Path.glob()` API rather than manually iterating over folders to find Nim modules.

Page 2 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.