Panther Release Notes#
5.0.0#
- Add Built-In
OpenAPI - Add Built-In
AdminPanel -
File Handling Improvements:
- Make
File.save()method idempotent - multiple calls return the same path - Add directory path support - paths ending with
/are treated as directories - Automatic directory creation when saving files
- Enhanced file path handling for both string and Path objects
- Make
-
Support
Set-Cookiein Response - Support
application/x-www-form-urlencodedContent Type - Support Different
MiddlewaresPer API - Support
asyncioinpanther shell - Support
Booleantype inload_env() - Add
CORSMiddleware - Add
RedirectResponse - Optimized
ORMwith smarterObjectIDhandling - Add CLI
createusercommand - Deprecated:
- Usage of
authandpermissionsinAPI,GenericAPIandGenericWebsockethas been change, make sure to check the docs. DEFAULT_CACHE_EXPin configs.- Rename
cache_exp_timetocachein@APIandGenricAPI. - Rename
panther.throttling.Throttlingtopanther.throttling.Throttle. - Remove
MONITORINGand move its functionality as middleware inpanther.middelwares.monitoring.MonitoringMiddleware. BaseUser.check_password(new_password=...)is renamed topassword.TemplateResponse(path=...)is renamed toname.- Middlewares does not support custom args for their
__init__. - New Style of Middleware declaration [Documentation].
- New background task declaration,
background_tasks.add_task(BackgroundTask(...))-->BackgroundTask(...).submit(). REDISblock in configs does not supportwebsocket_dbanymore.MIDDLEWAREdoes not support WebSocket middlewares anymore, you have to define them inWS_MIDDLEWARE.
- Usage of
4.3.7#
- Improve MultiPart-FormData Regex
4.3.6#
- Support middleware class in MIDDLEWARES
4.3.4#
- Cache Response Headers
4.3.4#
- Fix an issue on TemplateResponse when TEMPLATES_DIR is '.'
4.3.3#
- Fix not provided context in TemplateResponse
4.3.2#
- Support
Python 3.13
4.3.0#
- Support
Jinja2 Template Engine
4.2.0#
- Support
OPTIONSmethod
4.1.3#
- Add
reload()method to queries - Add
get_input_model()&get_output_model()toGenericAPI - Support
per_delete()&post_delete()inDeleteAPI - Support mongodb operators in
update() &update_one()
4.1.2#
- Fix some issues for
Windows
4.1.1#
- Fix an issue in
Response.prepare_data()whendataisCursor - Split
paginateandtemplateinPagination
4.1.0#
- Support
prepare_responseinSerializers - Rename
objects()tocursor()
4.0.1#
- Fix an issue in
startuplifespan
4.0.0#
- Move
databaseandredisconnections fromMIDDLEWARESto their own block,DATABASEandREDIS - Make
Databasequeriesasync - Make
Redisqueriesasync - Add
StreamingResponse - Add
genericsAPI classes - Add
login()&logout()toJWTAuthenticationand used it inBaseUser - Support
Authentication&AuthorizationinWebsocket - Rename all exceptions suffix from
ExceptiontoError(https://peps.python.org/pep-0008/#exception-names) - Support
pantherdb 2.0.0(CursorAdded) - Remove
watchfilesfrom required dependencies - Support
excludeandoptional_fieldsinModelSerializer - Minor Improvements
3.9.0#
- Change the style of
ModelSerializerusage
3.8.2#
- Add
content-type = application/jsonheader in raise response of__call__
3.8.1#
- Fix an issue in
_create_pantherdb_session()
3.8.0#
- Handle WebSocket connections when we have multiple workers with
multiprocessing.Manager
3.7.0#
- Add
ModelSerializer
3.6.0#
- Use
observablepattern for loading database middleware and inheritance of theQueryclass - Remove
IDTypefrom theModel - Change
encrypt_password()method, now usesscrypt+md5
3.5.1#
- Set default behavior of
GenericWebsocket.connectto ignore the connection (reject)
3.5.0#
- Add
WebsocketTestClient
3.4.0#
- Support
WebsocketMiddleware
3.3.2#
- Add
content-lengthto response header
3.3.1#
- Check
ruffinstallation on startup - Fix an issue in
routing
3.3.0#
- Add Auto Reformat Code
3.2.4#
- Add all() query
- Add tests for
pantherdb,load_configs(),status.py,Panel,multipart,request headers - Refactor
Headers()class - Check
uvloopinstallation onPanther init - Minor Improvement
3.2.1#
- Move
Startupto__call__
3.2.0#
- Support
Startup&ShutdownEvents
3.1.5#
- Support
Websocketin themonitoring - Refactor
collect_all_models()
3.1.4#
- Check ws redis connection on the
init - Refactor
Monitoringclass and usage - Improve
loggingconfig - Check database connection before query
3.1.3#
- Add
Imagebase class - Add
sizetoFilebase class - Improve the way of loading
configsinsingle-filestructure - Improve
background_tasks.py,generate_ws_connection_id() bpythonremoved from being the default python shell- Improve
load_middlewares()error handling - Print
configson therun - Add
requirements.txtfor development - Update
roadmap.jpg,README.md
3.1.2#
- Add new methods to
BackgroundTask every_seconds()every_minutes()every_hours()every_days()every_weeks()at()
3.1.1#
- Upgrade
PantherDBversion - Add
first(),last()queries
3.1.0#
- Add
BackgroundTasks
3.0.3#
- Add
find_one_or_raisequery - Add
last_logintoBaseUser - Add
refresh_life_timetoJWTConfig - Add
encode_refresh_token()toJWTAuthentication - Add
encrypt_password() - Handle
PantherException - Handle
RedisConnectionwithoutconnection_pool
3.0.2#
- Added 'utf-8' encoding while opening the file "README.md" in setup.py
- Fixed panther shell not working issue in windows.
- Added a condition to raise error if no argument is passed to panther command in cli.
3.0.1#
- Assume content-type is 'application/json' if it was empty
- Fix an issue on creating instance of model when query is done
3.0.0#
- Support Websocket
- Implement Built-in TestClient
- Support Single-File Structure
- Support
bytesasResponse.data - Add
methodstoAPI() - Change
Request.pure_datatoRequest.data - Change
Request.datatoRequest.validated_data - Change
panther.middlewares.db.Middlewaretopanther.middlewares.db.DatabaseMiddleware - Change
panther.middlewares.redis.Middlewaretopanther.middlewares.redis.RedisMiddleware - Fix
panther runcommand - Minor Improvement
2.4.2#
- Don't log content-type when it's not supported
2.4.1#
- Fix an issue in collect_all_models() in Windows
2.4.0#
- Handle Complex Multipart-FormData
2.3.3#
- Fix a bug in response headers
2.3.2#
- Fix a bug in Template
2.3.1#
- Handle PlainTextResponse
- Handle Custom Header in Response
- Change the way of accepting 'URLs' in configs (relative -> dotted)
- Fix an issue in collect_all_models()
2.3.0#
- Handle HTMLResponse
2.2.0#
- Supporting File
2.1.6#
- Fix validation errors on nested inputs
2.1.5#
- Fix response of nested Models in _panel/
/
2.1.4#
- Add access-control-allow-origin to response header
2.1.3#
- Upgrade greenlet version in requirements for python3.12
2.1.2#
- Add ruff.toml
- Add Coverage to workflows
- Fix a bug for running in Windows
2.1.1#
- Fix a bug in main.py imports
2.1.0#
- Support Sync APIs
2.0.0#
- Supporting class-base APIs
1.7.20#
- Fix an issue in find_endpoint()
1.7.19#
- Fix an issue in routing
- Fix an issue on return complex dict Response
1.7.18#
- Remove uvloop from requirements for now (we had issue in windows)
1.7.16#
- Trying to fix requirements for windows
- Minor improvement in BaseMongoDBQuery
1.7.15#
- Fix an issue in handling form-data
1.7.14#
- Add Cache and Throttling doc to FirstCrud
- Fix an issue in BasePantherDBQuery._merge()
1.7.13#
- Hotfix validation of _id in Model()
1.7.12#
- Fix a bug in routing
1.7.11#
- Fix an issue in template
1.7.10#
- Fix a bug in
collect_urlsand rename it toflatten_urls - Add General Tests
- Compatible with python3.10 (Not Tested)
- Working on docs
1.7.9#
- Working on doc
1.7.8#
- Fix a bug
- Update docs
1.7.8#
- Fix a bug
- Update docs
1.7.7#
- Fix a bug
1.7.5#
- Change the way of raising exception in JWTAuthentication
- Rename User model to BaseUser
- Fix template
1.7.4#
- Crop Logo
1.7.3#
- Add Throttling Doc
- Fix some issue in Doc
1.7.2#
- Add Throttling to example
- Customize install_requires in setup.py
- Improve monitoring cli command
1.7.1#
- Rename db BaseModel to Model
- Add more docs
1.7.0#
- Add Throttling
1.6.1#
- Add AdminPermission
1.6.0#
- Handle Permissions
1.5.2#
- Improve Response data serialization
- Fix a bug in JWTAuthentication
1.5.1#
- Fix error messages
1.5.0#
- Refactor Mongodb ODM
- Minor Improvement
1.4.0#
- Add QUERY_LOG
1.3.2#
- Add Uvicorn to the setup requirements
- Update Readme
1.3.1#
- Fix a bug in project creation template
- Fix a bug in caching
1.3.0#
- Add PantherDB to Panther
- Remove tinydb
1.2.7#
- Fix a bug while using tinydb
1.2.6#
- Update Readme
1.2.5#
- Fix install_requires issue
- Add benchmarks to docs
1.2.4#
- Remove Uvicorn From install_requires
- Working on Docs
1.2.3#
- Fix URL Routing
1.2.1#
- Path Variable Handled Successfully
1.2.0#
- Read multipart/form-data with Regex
1.1.9#
- Refactoring code style with ruff
- Add asyncio.TaskGroup()
1.1.8#
- Refactor cli run command
1.1.7#
- Add benchmark pictures to doc
1.1.5#
- Clean Readme
- Clean main.py
1.1.4#
- Update Readme
1.1.3#
- Fix a query in TinyDB
1.1.2#
- Add delete_many query to TinyDB
1.1.1#
- Add TinyDB
1.1.0#
- Debug the Template
1.0.9#
- Handle string exceptions (raise them as detail: error)
- Little debug on MongoQueries
1.0.7#
- Working on queries
- Fix a bug in query methods
1.0.6#
- Update the Template
1.0.4#
- Debug template
1.0.2#
- Add global config
- Split the BaseModels
- Worked on MongoQuery
- Set Mongo as default database while creating project
- Minor Improvement
1.0.1#
- Add alembic To Project
1.0.#
- Refactor & Complete the CLI
0.1.9#
- Fix install_requires
0.1.8#
- Update Readme
0.1.7#
- Update Readme
0.1.6#
- Handle Most Types as Data in Response
0.1.4#
- Working On DB Connection
0.0.1#
- Make It Ready For PyPI