Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .python-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
==3.12.*
>=3.10,<=3.13
2 changes: 1 addition & 1 deletion PYPI.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ Perfect for building **desktop, web, and mobile apps** with Python at lightning

## Quick Start 🏁

> NOTE: FletX currently supports Python 3.12 only. Compatibility with newer versions is in progress — we're actively working to expand support soon.
> NOTE: FletX currently supports Python `>=3.10,<=3.13`. Compatibility with newer versions is in progress — we're actively working to expand support soon.

### Installation
```bash
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ Perfect for building **desktop, web, and mobile apps** with Python at lightning

## Quick Start 🏁

> NOTE: FletX currently supports Python 3.12 only. Compatibility with newer versions is in progress — we're actively working to expand support soon.
> NOTE: FletX currently supports Python `>=3.10,<=3.13`. Compatibility with newer versions is in progress — we're actively working to expand support soon.

### Installation
```bash
Expand Down
9 changes: 1 addition & 8 deletions fletx/core/di.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,7 @@ class DI:
"""

_instances: Dict[str, Any] = {}
_logger: ClassVar[logging.Logger] = get_logger("FletX.DI")

@classmethod
@property
def logger(cls):
if not cls._logger:
cls._logger = get_logger('FletX.DI')
return cls._logger
logger: ClassVar[logging.Logger] = get_logger("FletX.DI")

@classmethod
def put(cls, instance: T, tag: Optional[str] = None) -> T:
Expand Down
1 change: 0 additions & 1 deletion fletx/core/effects.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@ def __init__(self, effect_fn: Callable, dependencies: List[Any] = None):
self._last_deps = None
self._logger = get_logger("FletX.Effect")

@classmethod
@property
def logger(cls):
if not cls._logger:
Expand Down
1 change: 0 additions & 1 deletion fletx/core/route_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ class RouteConfig:
_routes: Dict[str, Type[FletXPage]] = {} # pragma: no cover
_logger = get_logger(__name__)

@classmethod
@property
def logger(cls):
if not cls._logger:
Expand Down
1 change: 0 additions & 1 deletion fletx/core/router.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ class FletXRouter:
_middleware = RouteMiddleware()
_guards: Dict[str, List[RouteGuard]] = {}

@classmethod
@property
def logger(cls):
if not cls._logger:
Expand Down
13 changes: 2 additions & 11 deletions fletx/core/routing/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,19 +91,14 @@ def match(self, path: str) -> Optional[Dict[str, str]]:
class RouterConfig:
"""Advanced router configuration manager."""

_logger = get_logger('FletX.RouterConfig')

def __init__(self):
self._routes: Dict[str, RouteDefinition] = {}
self._route_patterns: List[tuple[RoutePattern, RouteDefinition]] = []
self._modules: Dict[str, 'ModuleRouter'] = {}

@classmethod
@property
def logger(cls):
if not cls._logger:
cls._logger = get_logger('FletX.RouterConfig')
return cls._logger
return get_logger('FletX.RouterConfig')

def add_route(
self,
Expand Down Expand Up @@ -278,13 +273,9 @@ def __init__(self):
# Add subrouters
self.add_subrouters(self.sub_routers)

self._logger = get_logger(f'FletX.ModuleRouter.{self.name}')

@property
def logger(self):
if not self._logger:
self._logger = get_logger(f'FletX.ModuleRouter.{self.name}')
return self._logger
return get_logger(f'FletX.ModuleRouter.{self.name}')

def add_route(
self,
Expand Down
6 changes: 1 addition & 5 deletions fletx/core/routing/router.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ class FletXRouter:
"""

_instance: Optional['FletXRouter'] = None
_logger = get_logger('FletX.Router')

def __init__(
self,
Expand All @@ -72,12 +71,9 @@ def __init__(
# an old version of fletx router
self.to = self.navigate

@classmethod
@property
def logger(cls):
if not cls._logger:
cls._logger = get_logger('FletX.Router')
return cls._logger
return get_logger('FletX.Router')

@classmethod
def get_instance(cls) -> 'FletXRouter':
Expand Down
2 changes: 1 addition & 1 deletion fletx/core/services.py
Original file line number Diff line number Diff line change
Expand Up @@ -342,4 +342,4 @@ def __str__(self) -> str:

def __repr__(self) -> str:
return (f"FletXService(name='{self._name}', state={self._state.value}, "
f"created_at={self._created_at.isoformat()})")
f"created_at={self._created_at.isoformat()})")
8 changes: 2 additions & 6 deletions fletx/core/state.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,10 @@ def __init__(
self.active = True
self.auto_dispose = auto_dispose
self._dependencies = set()
self._logger = get_logger("FletX.Observer")

@property
def logger(self):
if not self._logger:
self._logger = get_logger('FletX.Observer')
return self._logger
return get_logger('FletX.Observer')

def add_dependency(self, dependency):
"""
Expand Down Expand Up @@ -129,7 +126,6 @@ def __init__(self, initial_value: T):
self._value = initial_value
self._observers: Set[Observer] = set()

@classmethod
@property
def logger(cls):
if not cls._logger:
Expand Down Expand Up @@ -437,4 +433,4 @@ def clear(self):
Removes all keys and values from the dictionary, leaving it empty.
"""
self._value.clear()
self._notify_observers()
self._notify_observers()
1 change: 0 additions & 1 deletion fletx/core/widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ def __init_subclass__(cls, **kwargs):
FletXWidgetRegistry.register(cls)
cls.page.update()

@classmethod
@property
def logger(cls):
if not cls._logger:
Expand Down
1 change: 0 additions & 1 deletion fletx/utils/logger.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ def get_logger(cls, name: str = "FletX") -> logging.Logger:
return cls._logger

@property
@classmethod
def logger(self) -> logging.Logger:
return self.get_logger()

Expand Down
8 changes: 6 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ readme = "PYPI.md"
license = {file = "LICENSE"}
authors = [{ name = "AllDotPy", email = "hello@alldotpy.com" }]
maintainers = [{ name = "#Einswilli", email = "einswilligoeh@email.com" }]
requires-python = "==3.12.*"
requires-python = ">=3.10,<=3.13"
keywords = [
"fletx", "fletxr", "flet", "reactive state",
"routing", "di", "dependency injection"
Expand All @@ -28,14 +28,15 @@ Repository = "https://github.com/AllDotPy/FletX"
Documentation = "https://alldotpy.github.io/FletX"
Tracker = "https://github.com/AllDotPy/FletX/issues"

[project.optional-dependencies]
[dependency-groups]
dev = [
"black",
"mypy",
"twine",
"uv",
"build",
"pytest>=8.4.0",
"pytest-asyncio>=1.3.0",
"mkdocs>=1.6.1",
"setuptools>=80.8.0",
"mkdocs-material>=9.6.14",
Expand All @@ -45,6 +46,9 @@ dev = [
[tool.setuptools]
packages = ["fletx"]

[tool.pytest.ini_options]
asyncio_mode = "auto"

[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"