-
-
Notifications
You must be signed in to change notification settings - Fork 19
Open
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed
Description
It looks to me that the order in which the dataclass fields are declared is super important.
Example directory structure:
environments
dev
config
servers
server-1
server.yaml
server-2
server.yaml
server-3
server.yaml
Datafile definition:
@datafile("./environments/{self.environment}/config/servers/{self.name}/server.yaml")
class Server:
name: str
environment: str
When running:
import os
from manager.models import Cluster
if __name__ == '__main__':
clusters = list(Server.objects.all())
It ends up raising:
FileNotFoundError: [Errno 2] No such file or directory: '/project/configuration/environments/server-1/config/servers/dev/server.yaml'
This seems to come from when the manager.all method does yield self.get(*values) with values ["server-1", "dev"] which ends up building the path posted above as manager.get iterates on the fields in the order they are declared and sets the values accordingly.
If I declare:
@datafile("./environments/{self.environment}/config/servers/{self.name}/server.yaml")
class Server:
environment: str
name: str
It works.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requesthelp wantedExtra attention is neededExtra attention is needed