# fme-packager: FME Package Creator
`fme-packager` is a Python command-line tool for validating and creating FME Packages.
Give it the path to an FME Package directory, and it'll do some quick checks
and build an `.fpkg` file out of it.
The validations done by `fme-packager` will catch common mistakes in package development,
but is still very basic. The FME Packages it creates will be
validly formed according to the FME Packages Specification,
but whether the installed components function correctly within FME is not in its scope.
## Install
Download the latest whl distribution from the releases page. Then install it:
```
$ pip install [fme-packager].whl
```
Once installed, the `fme-packager` command is available on your system.
`fme-packager --help` shows an overview of commands.
## What it does
* Validate package.yml against the FME Packages Specification.
* Verifies that components listed in package.yml are present.
* Checks that transformer and format names are valid and well-formed.
* Verifies that the transformer version in the package.yml is
included in the FMX.
* Requires that Custom Transformers be Linked Always, declare Python 3 support,
and authored with a sufficiently recent version of FME Workbench.
* Excludes components that are present in directories,
but not listed in package.yml.
* Cleans and rebuilds wheels for Python packages that are subdirectories of `python/`.
* Copies wheels from `python/*/dist` into `python/`.
* Enforces required package icon dimensions.
These steps are done while copying files into a temporary build directory,
so existing files are not modified.
## Get started with a template
`fme-packager init [template name]` helps you get started with developing FME Packages by
using [Cookiecutter](https://cookiecutter.readthedocs.io/) templates.
Available templates:
* `transformer`: [Transformer template for FME Packages](https://github.com/safesoftware/fpkg-transformer-template)
_These templates are not currently bundled with fme-packager._
## Make an fpkg distribution
Call `fme-packager pack` with the path to your package directory (it contains package.yml):
```
$ fme-packager pack my-package
```
If everything went well, the fpkg will be in `my-package/dist/`.
## Development
### Setup and Testing
To set up a development environment, clone this repository and install the dependencies:
```
$ pip install ".[dev]"
```
Install the pre-commit hooks:
```
$ pre-commit install
```
To run the tests:
```
$ pytest
```
Raw data
{
"_id": null,
"home_page": "https://github.com/safesoftware/fme-packager",
"name": "fme-packager",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "FME fmeobjects",
"author": "Safe Software Inc.",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/19/ef/c147b2a960f34ad1fb3ecba3807c58171706a2d70c8320232f01afb434be/fme_packager-1.9.0.tar.gz",
"platform": null,
"description": "# fme-packager: FME Package Creator\n\n`fme-packager` is a Python command-line tool for validating and creating FME Packages.\nGive it the path to an FME Package directory, and it'll do some quick checks\nand build an `.fpkg` file out of it.\n\nThe validations done by `fme-packager` will catch common mistakes in package development,\nbut is still very basic. The FME Packages it creates will be\nvalidly formed according to the FME Packages Specification,\nbut whether the installed components function correctly within FME is not in its scope.\n\n\n## Install\n\nDownload the latest whl distribution from the releases page. Then install it:\n\n```\n$ pip install [fme-packager].whl\n```\n\nOnce installed, the `fme-packager` command is available on your system.\n`fme-packager --help` shows an overview of commands.\n\n\n## What it does\n\n* Validate package.yml against the FME Packages Specification.\n* Verifies that components listed in package.yml are present.\n* Checks that transformer and format names are valid and well-formed.\n* Verifies that the transformer version in the package.yml is\n included in the FMX.\n* Requires that Custom Transformers be Linked Always, declare Python 3 support,\n and authored with a sufficiently recent version of FME Workbench.\n* Excludes components that are present in directories,\n but not listed in package.yml.\n* Cleans and rebuilds wheels for Python packages that are subdirectories of `python/`.\n* Copies wheels from `python/*/dist` into `python/`.\n* Enforces required package icon dimensions.\n\nThese steps are done while copying files into a temporary build directory,\nso existing files are not modified.\n\n\n## Get started with a template\n\n`fme-packager init [template name]` helps you get started with developing FME Packages by\nusing [Cookiecutter](https://cookiecutter.readthedocs.io/) templates.\n\nAvailable templates:\n\n* `transformer`: [Transformer template for FME Packages](https://github.com/safesoftware/fpkg-transformer-template)\n\n_These templates are not currently bundled with fme-packager._\n\n\n## Make an fpkg distribution\n\nCall `fme-packager pack` with the path to your package directory (it contains package.yml):\n\n```\n$ fme-packager pack my-package\n```\n\nIf everything went well, the fpkg will be in `my-package/dist/`.\n\n\n## Development\n\n### Setup and Testing\n\nTo set up a development environment, clone this repository and install the dependencies:\n\n```\n$ pip install \".[dev]\"\n```\n\nInstall the pre-commit hooks:\n\n```\n$ pre-commit install\n```\n\nTo run the tests:\n\n```\n$ pytest\n```\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "Tool for creating FME Packages.",
"version": "1.9.0",
"project_urls": {
"Homepage": "https://github.com/safesoftware/fme-packager"
},
"split_keywords": [
"fme",
"fmeobjects"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "96956ba83c2adc4df6261498f4baff20ab8578b49a787b49af78894324d7ec4a",
"md5": "7497ff6df1c52be32ab64176bb83edd4",
"sha256": "175757c8da86cab312b721a7bc45ea3f236e9829adf5e7d22137ded9782fcd47"
},
"downloads": -1,
"filename": "fme_packager-1.9.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7497ff6df1c52be32ab64176bb83edd4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 26665,
"upload_time": "2024-08-07T23:03:03",
"upload_time_iso_8601": "2024-08-07T23:03:03.212183Z",
"url": "https://files.pythonhosted.org/packages/96/95/6ba83c2adc4df6261498f4baff20ab8578b49a787b49af78894324d7ec4a/fme_packager-1.9.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "19efc147b2a960f34ad1fb3ecba3807c58171706a2d70c8320232f01afb434be",
"md5": "5bbd6b25dea2cf02bbe884b528d8d4c6",
"sha256": "ad49e348529f50d75ddb767c85c8726f0b31d4a58745672abc3841f573fa0bc9"
},
"downloads": -1,
"filename": "fme_packager-1.9.0.tar.gz",
"has_sig": false,
"md5_digest": "5bbd6b25dea2cf02bbe884b528d8d4c6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 30069,
"upload_time": "2024-08-07T23:03:04",
"upload_time_iso_8601": "2024-08-07T23:03:04.150401Z",
"url": "https://files.pythonhosted.org/packages/19/ef/c147b2a960f34ad1fb3ecba3807c58171706a2d70c8320232f01afb434be/fme_packager-1.9.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-07 23:03:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "safesoftware",
"github_project": "fme-packager",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "fme-packager"
}