Metadata-Version: 2.4
Name: filester
Version: 1.1.4
Summary: Filester: generic, file based utilities and helpers
Author-email: Lou Markovski <lou.markovski@gmail.com>
License-Expression: MIT
Project-URL: Documentation, https://loum.github.io/filester/
Project-URL: Repository, https://github.com/loum/filester
Project-URL: Issues, https://github.com/loum/filester/issues
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Environment :: MacOS X
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Programming Language :: Python :: 3
Requires-Python: <3.13,>=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: structlog
Provides-Extra: dev
Requires-Dist: black; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: deptry; extra == "dev"
Requires-Dist: mdformat; extra == "dev"
Requires-Dist: mdformat-mkdocs; extra == "dev"
Requires-Dist: mkdocs-material; extra == "dev"
Requires-Dist: mkdocstrings-python; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: pytest-sugar; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: sqlalchemy2-stubs; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: types-pytz; extra == "dev"
Dynamic: license-file

# Filester: generic, file based utilities and helpers

- [Overview](#overview)
- [Prerequisites](#prerequisites)
- [Getting Started](#getting-started)
  - [(macOS Users only) upgrading GNU `make`](#macos-users-only-upgrading-gnu-make)
  - [Creating the local environment](#creating-the-local-environment)
  - [Local environment maintenance](#local-environment-maintenance)
- [Help](#help)
- [Running the Test Harness](#running-the-test-harness)

## Overview
Find yourself running the same file based operations over and over again in your projects?  Yeah, annoying. As a result, this package is a grouping of common file operation facilities which delegate the package inclusion to `pip` and PyPI. One less thing to worry about ...

See [Filester's documentation](https://loum.github.io/filester/) for more information.

[top](#filester-generic-file-based-utilities-and-helpers)

## Prerequisites
- [GNU make](https://www.gnu.org/software/make/manual/make.html)
- Python 3 Interpreter. [We recommend installing pyenv](https://github.com/pyenv/pyenv)
- [Docker](https://www.docker.com/)

[top](#filester-generic-file-based-utilities-and-helpers)

## Getting Started
[Makester](https://loum.github.io/makester/) is used as the Integrated Developer Platform.

### (macOS Users only) upgrading GNU `make`
Follow [these notes](https://loum.github.io/makester/macos/#upgrading-gnu-make-macos) to get [GNU make](https://www.gnu.org/s
oftware/make/manual/make.html).

### Creating the local environment
Get the code and change into the top level `git` project directory:
```
git clone git@github.com:loum/filester.git && cd filester
```
> **_NOTE:_** Run all commands from the top-level directory of the `git` repository.

For first-time setup, prime the [Makester project](https://github.com/loum/makester.git):
```
git submodule update --init
```

Initialise the environment:
```
make init-dev
```

### Local environment maintenance
Keep [Makester project](https://github.com/loum/makester.git) up-to-date with:
```
git submodule update --remote --merge
```

[top](#filester-generic-file-based-utilities-and-helpers)

## Help
There should be a `make` target to get most things done. Check the help for more information:
```
make help
```

[top](#filester-generic-file-based-utilities-and-helpers)

## Running the Test Harness
We use [pytest](https://docs.pytest.org/en/latest/). To run the tests:
```
make tests
```

---
[top](#filester-generic-file-based-utilities-and-helpers)
