- Create backend/services/image_storage.py with 4 core functions:
- sanitize_filename(): remove unsafe chars, limit to 255 chars, convert to lowercase
- get_unique_filename(): handle collisions with UUID suffix (format: {name}_{uuid8}_{variant}.jpg)
- ensure_image_directories(): create /images/ root and category subdirs on startup
- save_image(): save bytes to /images/{category}/{filename}, returns relative path
- Create comprehensive test suite (22 tests) covering all functionality
- Integrate ensure_image_directories() into FastAPI startup event
- Directory structure: /images/{category}/{filename}
- Collision handling: auto-suffix with UUID if filename exists
- All tests passing, pathlib.Path for safe operations
69 lines
2.5 KiB
Plaintext
69 lines
2.5 KiB
Plaintext
Metadata-Version: 2.4
|
|
Name: cffi
|
|
Version: 2.0.0
|
|
Summary: Foreign Function Interface for Python calling C code.
|
|
Author: Armin Rigo, Maciej Fijalkowski
|
|
Maintainer: Matt Davis, Matt Clay, Matti Picus
|
|
License-Expression: MIT
|
|
Project-URL: Documentation, https://cffi.readthedocs.io/
|
|
Project-URL: Changelog, https://cffi.readthedocs.io/en/latest/whatsnew.html
|
|
Project-URL: Downloads, https://github.com/python-cffi/cffi/releases
|
|
Project-URL: Contact, https://groups.google.com/forum/#!forum/python-cffi
|
|
Project-URL: Source Code, https://github.com/python-cffi/cffi
|
|
Project-URL: Issue Tracker, https://github.com/python-cffi/cffi/issues
|
|
Classifier: Programming Language :: Python
|
|
Classifier: Programming Language :: Python :: 3
|
|
Classifier: Programming Language :: Python :: 3.9
|
|
Classifier: Programming Language :: Python :: 3.10
|
|
Classifier: Programming Language :: Python :: 3.11
|
|
Classifier: Programming Language :: Python :: 3.12
|
|
Classifier: Programming Language :: Python :: 3.13
|
|
Classifier: Programming Language :: Python :: 3.14
|
|
Classifier: Programming Language :: Python :: Free Threading :: 2 - Beta
|
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
Requires-Python: >=3.9
|
|
Description-Content-Type: text/markdown
|
|
License-File: LICENSE
|
|
License-File: AUTHORS
|
|
Requires-Dist: pycparser; implementation_name != "PyPy"
|
|
Dynamic: license-file
|
|
|
|
[](https://github.com/python-cffi/cffi/actions/workflows/ci.yaml?query=branch%3Amain++)
|
|
[](https://pypi.org/project/cffi)
|
|
[][Documentation]
|
|
|
|
|
|
CFFI
|
|
====
|
|
|
|
Foreign Function Interface for Python calling C code.
|
|
|
|
Please see the [Documentation] or uncompiled in the `doc/` subdirectory.
|
|
|
|
Download
|
|
--------
|
|
|
|
[Download page](https://github.com/python-cffi/cffi/releases)
|
|
|
|
Source Code
|
|
-----------
|
|
|
|
Source code is publicly available on
|
|
[GitHub](https://github.com/python-cffi/cffi).
|
|
|
|
Contact
|
|
-------
|
|
|
|
[Mailing list](https://groups.google.com/forum/#!forum/python-cffi)
|
|
|
|
Testing/development tips
|
|
------------------------
|
|
|
|
After `git clone` or `wget && tar`, we will get a directory called `cffi` or `cffi-x.x.x`. we call it `repo-directory`. To run tests under CPython, run the following in the `repo-directory`:
|
|
|
|
pip install pytest
|
|
pip install -e . # editable install of CFFI for local development
|
|
pytest src/c/ testing/
|
|
|
|
[Documentation]: http://cffi.readthedocs.org/
|