Skip to content

Latest commit

 

History

History
182 lines (157 loc) · 7.96 KB

CHANGELOG.md

File metadata and controls

182 lines (157 loc) · 7.96 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

  • Added the default_page function
  • Made default_page the example response in view init
  • Added .gitignore generation to view init
  • Added support for coroutines in PyAwaitable (vendored)
  • Finished websocket implementation
  • Added the custom loader
  • Added support for returning bytes objects in the body
  • Added nosanitize and repr to the ref attribute of <view> tags in view template rendering
  • WebSocketDisconnect is now raised instead of WebSocketHandshakeError in an unexpected WebSocket disconnect
  • Added many, many, more docstrings
  • Added the app attribute to Context
  • Switched to PyMalloc under the hood
  • Deprecated the run() utility
  • Added support for asynchronous __view_result__ functions
  • Removed unstable components functions from top-level view module
  • Added native support for ReactPy component routes
  • Added the expect_errors utility
  • Added the HeaderDict class
  • Changed the headers attribute on Context to a HeaderDict instance of a dict
  • Added the call_result utility
  • Added the ctx parameter to to_response
  • Removed broken hint when forgetting to call load()
  • Added support for isinstance to SupportsViewResult
  • Moved to_response to the view.utils module
  • Added the force parameter to run
  • Added the view dev command (live reload)
  • Fixed redirection and disabling of HTTP server logging
  • C API is now compliant with PEP 7
  • Added -g3 and -O3 flag to the _view extension module (debugging information and optimizations)
  • Removed use of Rich escape() in the message shown when a dependency is needed
  • Query string client errors are now displayed during development mode
  • KeyboardInterrupt is swallowed by the server coroutine, and a log message is now issued
  • Typecode API now raises exceptions indicating a validation error (and now it's sent as a response with a query or body parse failure)
  • hatchling and scikit-build-core are now used for build instead of setuptools
  • Renamed the view-admin command to view-py
  • Breaking Change: Renamed Error to HTTPError
  • Breaking Change: __view_result__ is now given a Context parameter
  • Breaking Change: to_response is now asynchronous
  • Breaking Change: Renamed Response._custom to Response.translate_body
  • Breaking Change: Removed the hijack configuration setting
  • Breaking Change: Removed the post_init parameter from new_app, as well as renamed the store_address parameter to store
  • Breaking Change: load() now takes routes via variadic arguments, instead of a list of routes.

[1.0.0-alpha10] - 2024-5-26

  • Added the view docs command
  • Reworked internal logging API and changed default logger format
  • Added the websocket and app.websocket router
  • Made hijack optional in fancy mode
  • Added a startup message
  • Added support for daphne and hypercorn as servers
  • Added documentation for view.env and added environment variables to configuration
  • Removed dead file src/view/nodes.py and src/view/compiler.py
  • Added patterns loader to view init
  • Updated internal C API structure
  • Added build to config
  • Added the build_app and build_steps functions
  • Route.__call__ is now used internally over Route.func
  • Added the to_response function
  • Improved type checking on functions decorated with a router function
  • Added preset values to the view.toml generated by view init
  • Fixed fancy logging not exiting after a KeyboardInterrupt
  • Added prettier input prompts to view init
  • Added HTML.from_file
  • Breaking Change: Middleware functions must now take call_next

[1.0.0-alpha9] - 2024-2-4

  • Fixed template attribute with the view template renderer
  • Added the context decorator and the Context type
  • Added the headers parameter to functions on TestingContext
  • Modified some behavior of automatic route inputs
  • Fixed syntax errors in view init
  • Added Route.middleware
  • Routes with equivalent paths but different methods now return 405 Method Not Allowed when accessed
  • Added route and App.route
  • Added docstrings to router functions
  • Added the JSON response class
  • Added the custom body translate strategy
  • Made method a keyword-only parameter in path
  • Added the extract_path utility
  • Added the view build command
  • Added App.template
  • Route errors now display the error message when dev is True
  • Changed exception rendering in route errors to use the rich renderer
  • Added compile_type and TCValidator
  • Added markdown and App.markdown
  • Added the Error class
  • Added the error_class parameter to both new_app and App
  • Added the ERROR_CODES constant
  • Completely rewrote docs
  • Breaking Change: The body parameter in Response is now required

[1.0.0-alpha8] - 2024-1-21

  • Added optional dependencies for databases and templates
  • Added environment prefixes for database configuration
  • Added templates and TemplatesConfig to config
  • Added the templates function
  • Added support for attrs in type validation
  • Added documentation for caching
  • Added the cache_rate parameter to routers
  • Removed psutil and plotext as a global dependency
  • Added fancy optional dependencies
  • Fixed route inputs with synchronous routes
  • Breaking Change: Route inputs are now applied in the order of the decorator call as it appears in code

[1.0.0-alpha7] - 2023-12-7

Quick Patch Release

  • Remerged new view init command.

[1.0.0-alpha6] - 2023-11-30

  • Added get_app
  • Added documentation generation
  • Added database support (NOT FINISHED)
  • Removed attempt_import and MissingLibraryError
  • Added support for lists in type validation
  • Added support for implicit query parameters
  • Renamed debug to enable_debug
  • Added debug, info, warning, error, and critical logging functions
  • Added InvalidRouteError, DuplicateRouteError, ViewInternalError, and ConfigurationError
  • Renamed EnvironmentError to BadEnvironmentError
  • Added logging functions to App
  • Changed environment prefixes for configuration
  • Rewrote documentation
  • Added patterns loader
  • Added handling of relative paths in the configuration setting loader_path
  • Added exists validation to loader_path
  • Add path to PATH environment variable during loading
  • Upgraded view init

[1.0.0-alpha5] - 2023-09-24

  • Added app.query and app.body
  • Patched warning with starting app from incorrect filename
  • Updated __all__ for routing.py
  • Added view.Response and view.HTML
  • Fixed __view_result__
  • Added support for __view_body__ and __view_construct__
  • Added support for Pydantic, NamedTuple, and dataclasses for type validation
  • Support for direct union types (i.e. str | int, Union[str, int]) on type validation
  • Added support for non async routes

[1.0.0-alpha4] - 2023-09-10

  • Added type validation (without support for __view_body__)
  • Patched query strings on app testing
  • Added tests for query and body parameters
  • Patched body parameters
  • Documented type validation
  • Patched bodies with testing

[1.0.0-alpha3] - 2023-09-9

  • Patched header responses
  • Added tests for headers
  • Updated repr for Route
  • Patched responses with three values
  • Documented responses and result protocol

[1.0.0-alpha2] - 2023-09-9

  • Added App.test()
  • Added warning when filename does not match app_path
  • Added more tests
  • Upgrade CIBW to work on 3.11

[1.0.0-alpha1] - 2023-08-17

Initial.