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

refactor: redesign filers #179

Open
uniqueg opened this issue May 21, 2024 · 3 comments
Open

refactor: redesign filers #179

uniqueg opened this issue May 21, 2024 · 3 comments
Assignees

Comments

@uniqueg
Copy link
Member

uniqueg commented May 21, 2024

Current object filer design, as inherited from TESK-core), is a bit messy. To make it easier to add support for different file protocols in the future, it would be nice to clean up the filer-related code and make it a bit more pluggable.

For example, we could have the following directory layout:

.
└── tesk
    └── services
        ├── abstract
        │   ├── filer.py
        │   └── __init__.py
        └── filers
            ├── ftp.py
            ├── http.py
            ├── __init__.py
            └── s3.py

with an abstract Filer class/interfact defined in tesk.services.abstract.filer that has some methods that individual file protocol plugins in tesk.services.filers then can inherit from and implement.

@uniqueg
Copy link
Member Author

uniqueg commented May 21, 2024

@JaeAeich: It may be good for you to keep in mind/consider this design principle during your GSoC project. However, I think this particular issue is mostly beyond the scope of the project.

@lvarin, @jemaltahir, @trispera: Is this something that you could perhaps look into? If so, please assign yourself :)

@jemaltahir
Copy link

I can have a look into this. What @uniqueg suggested file structure is great in terms of separation of concern and modularity.

@JaeAeich
Copy link

Whenever services and its tests are being refactor, please take in consideration that all those files have been ignored from linter (ruff), so change that in pyproject.toml.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants