# Licant
Licant is designed to build small modular projects with a complex dependency tree.
What is it?
-----------
Initially Likant was written as a system for assembling code for projects on microcontrollers.
The core of the Lycant system is a make-like assembly tree solver written in python.
But, the main feature of Licant in the system of modules.
The Likant paradigm consists in the description of a project by a set of modules that link to each other. Connecting the module automatically tightens the connection of dependent modules.
Modules can have several implementations, which allows flexible configuration of the project. (For example, you can change the initialization code of the microcontroller or the implementation of the input-output system simply by replacing the implementation of the corresponding module).
One of the goals of the project is to work with submodules located in remote directories. The library subsystem allows a project to refer to modules located in remote directories, which allows several projects to use the same code.
Installing
----------
```sh
python3 -m pip install licant
```
HelloWorld
----------
```python
#!/usr/bin/env python
import licant.make as lmake
import licant
lmake.source("a.txt")
lmake.copy(tgt = "build/b.txt", src = "a.txt")
lmake.copy(tgt = "build/c.txt", src = "build/b.txt")
print("licant targets list:" + str(licant.default_core().targets))
licant.ex(default = "build/c.txt")
```
Example projects
----------------
[https://github.com/mirmik/nos](https://github.com/mirmik/nos)
[https://github.com/mirmik/igris](https://github.com/mirmik/igris)
[https://github.com/mirmik/genos](https://github.com/mirmik/genos)
Raw data
{
"_id": null,
"home_page": "https://github.com/mirmik/licant",
"name": "licant",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "testing,make",
"author": "Sorokin Nikolay",
"author_email": "mirmikns@yandex.ru",
"download_url": "https://files.pythonhosted.org/packages/04/58/be05fc0d880bd33e4c1bd626e1828c744b02a73c28a860f6c75a72d1133a/licant-1.15.0.tar.gz",
"platform": null,
"description": "# Licant\n\nLicant is designed to build small modular projects with a complex dependency tree.\n\nWhat is it?\n-----------\nInitially Likant was written as a system for assembling code for projects on microcontrollers.\n\nThe core of the Lycant system is a make-like assembly tree solver written in python.\n\nBut, the main feature of Licant in the system of modules.\nThe Likant paradigm consists in the description of a project by a set of modules that link to each other. Connecting the module automatically tightens the connection of dependent modules.\n\nModules can have several implementations, which allows flexible configuration of the project. (For example, you can change the initialization code of the microcontroller or the implementation of the input-output system simply by replacing the implementation of the corresponding module).\n\nOne of the goals of the project is to work with submodules located in remote directories. The library subsystem allows a project to refer to modules located in remote directories, which allows several projects to use the same code.\n\nInstalling\n----------\n\n```sh\npython3 -m pip install licant\n```\n\nHelloWorld\n----------\n```python\n#!/usr/bin/env python\n\nimport licant.make as lmake\nimport licant\n\nlmake.source(\"a.txt\")\nlmake.copy(tgt = \"build/b.txt\", src = \"a.txt\")\nlmake.copy(tgt = \"build/c.txt\", src = \"build/b.txt\")\n\nprint(\"licant targets list:\" + str(licant.default_core().targets))\n\nlicant.ex(default = \"build/c.txt\")\n```\n\nExample projects\n----------------\n[https://github.com/mirmik/nos](https://github.com/mirmik/nos) \n[https://github.com/mirmik/igris](https://github.com/mirmik/igris) \n[https://github.com/mirmik/genos](https://github.com/mirmik/genos) \n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "licant make system",
"version": "1.15.0",
"split_keywords": [
"testing",
"make"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7909e35168abcd3db1ec264a19fc2614d578b0a82190cfb52436f4df81f00747",
"md5": "132f4aff4a7e7e8a35b5ae0c7f653e74",
"sha256": "b82b853efa55cf61e4bd40bbf88627d62aa4057504ee523900f9264121430ff0"
},
"downloads": -1,
"filename": "licant-1.15.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "132f4aff4a7e7e8a35b5ae0c7f653e74",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 29174,
"upload_time": "2023-04-17T08:30:54",
"upload_time_iso_8601": "2023-04-17T08:30:54.456378Z",
"url": "https://files.pythonhosted.org/packages/79/09/e35168abcd3db1ec264a19fc2614d578b0a82190cfb52436f4df81f00747/licant-1.15.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0458be05fc0d880bd33e4c1bd626e1828c744b02a73c28a860f6c75a72d1133a",
"md5": "efb149dd95b98c888f40560773626176",
"sha256": "8c57ad25585f966d38805c4bff06e77cc440bb739c9e4da9be664a9ee86106f5"
},
"downloads": -1,
"filename": "licant-1.15.0.tar.gz",
"has_sig": false,
"md5_digest": "efb149dd95b98c888f40560773626176",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 25304,
"upload_time": "2023-04-17T08:30:56",
"upload_time_iso_8601": "2023-04-17T08:30:56.320711Z",
"url": "https://files.pythonhosted.org/packages/04/58/be05fc0d880bd33e4c1bd626e1828c744b02a73c28a860f6c75a72d1133a/licant-1.15.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-04-17 08:30:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "mirmik",
"github_project": "licant",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "licant"
}