Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace dict-helpers and proxy system with .query() factories #71

Open
leonhard-s opened this issue Jul 16, 2023 · 0 comments
Open

Replace dict-helpers and proxy system with .query() factories #71

leonhard-s opened this issue Jul 16, 2023 · 0 comments
Assignees
Labels
discussion Additional opinions wanted enhancement New feature or request

Comments

@leonhard-s
Copy link
Owner

The mid-term strategy for Auraxium is to decouple the wrapper features from the object model. Feature-rich proxies and class-specific functionality are incompatible with this goal.

Proxies

While functional, the proxy system never reached a satisfactory state (see #22) and attempting to reach feature-parity with actual joins would lead to a slow and fragile mechanism that will break with every major API change.

Object Model Helpers

Similarly, the class-specific helper methods such as Character.get_online() are useful but must be implemented in an easier-to-maintain way. This could be achieved by promoting the census module to a first-class API that is easier to integrate into the object model (see #45).

The helper methods could either be injected into pydantic-generated classes at runtime (required to support #70), or would live in a separate namespace, taking the object model they operate on as an argument. This would also close the gap between built-in helpers (which are methods as of v0.3) and user-defined ones (see the get_online_friends(<character>) helper in the v0.3 Docs).

@leonhard-s leonhard-s added enhancement New feature or request discussion Additional opinions wanted labels Jul 16, 2023
@leonhard-s leonhard-s self-assigned this Sep 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Additional opinions wanted enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant