gnss-product-management Class Dependency Graph
classDiagram
namespace Specifications {
class Catalog {
<<abstract>>
+build()* classmethod
}
class Parameter {
+name str
+value Optional[str]
+derivation DerivationMethod
}
class ParameterCatalog {
+parameters dict
}
class PathTemplate {
+template str
}
class Product {
+name str
+parameters List[Parameter]
+directory PathTemplate
+filename PathTemplate
}
class VersionCatalog~T~ {
+versions dict
}
class VariantCatalog~T~ {
+variants dict
}
class ProductSpec {
+materialize() Product
}
class ProductSpecCatalog {
+from_yaml() classmethod
}
class ProductCatalog {
+build() classmethod
}
class FormatVariantSpec {
+materialize() Product
}
class FormatSpecCatalog {
+from_yaml() classmethod
}
class FormatCatalog {
+build() classmethod
}
class Server {
+host str
}
class ResourceProductSpec {
+parameters List[Parameter]
+directory PathTemplate
}
class ResourceSpec {
+servers List[Server]
+products List[ResourceProductSpec]
}
class SearchTarget {
+product Product
+server Server
+directory PathTemplate
+narrow() SearchTarget
}
class ResourceCatalog {
+queries List[SearchTarget]
+build() classmethod
}
class LocalCollection
class LocalResourceSpec {
+collections dict
}
class SearchPreference
class Dependency
class DependencySpec {
+from_yaml() classmethod
}
class ResolvedDependency
class DependencyResolution {
+resolved List[ResolvedDependency]
}
}
namespace Environments {
class ProductRegistry {
+load_parameters()
+load_formats()
+load_products()
+load_remote_resources()
}
class WorkSpace {
+register()
}
class RegisteredLocalResource {
+spec LocalResourceSpec
+server Server
}
}
namespace Lockfile {
class LockProductAlternative
class LockProduct {
+alternatives List[LockProductAlternative]
}
class DependencyLockFile {
+products List[LockProduct]
}
class LockfileManager
}
namespace Adapters {
class DirectoryAdapter {
<<protocol>>
}
class FTPAdapter
class HTTPAdapter
class LocalAdapter
}
namespace Factories {
class SourcePlanner {
<<protocol>>
}
class RemoteSearchPlanner {
-_product_catalog ProductCatalog
-_parameter_catalog ParameterCatalog
-_catalogs Dict[str, ResourceCatalog]
}
class LocalSearchPlanner {
-_workspace WorkSpace
-_product_registry ProductRegistry
}
class SearchPlanner {
-_env ProductRegistry
-_workspace WorkSpace
-_remote_search_planner RemoteSearchPlanner
-_local_search_planner LocalSearchPlanner
}
class ConnectionPool
class ConnectionPoolFactory {
+get() ConnectionPool
}
class WormHole {
-_connection_pool_factory ConnectionPoolFactory
}
class DependencyResolver {
+dep_spec DependencySpec
+resolve() DependencyResolution
}
class FindPipeline {
-_planner SearchPlanner
-_transport WormHole
}
class DownloadPipeline {
-_planner SearchPlanner
-_transport WormHole
}
class LockfileWriter {
-_manager LockfileManager
}
class ResolvePipeline {
-_finder FindPipeline
-_downloader DownloadPipeline
-_writer LockfileWriter
}
}
%% Inheritance
Catalog <|-- ProductCatalog
Catalog <|-- FormatCatalog
Catalog <|-- ResourceCatalog
DirectoryAdapter <|.. FTPAdapter
DirectoryAdapter <|.. HTTPAdapter
DirectoryAdapter <|.. LocalAdapter
SourcePlanner <|.. RemoteSearchPlanner
SourcePlanner <|.. LocalSearchPlanner
%% Specifications internal
ParameterCatalog --> Parameter
PathTemplate --> ParameterCatalog
Product --> Parameter
Product --> PathTemplate
VersionCatalog --> VariantCatalog
ProductSpec --> Product
ProductSpecCatalog --> VersionCatalog
ProductSpecCatalog --> ProductSpec
ProductCatalog --> VersionCatalog
ProductCatalog --> Product
ProductCatalog --> ProductSpecCatalog
ProductCatalog --> FormatCatalog
FormatVariantSpec --> Product
FormatSpecCatalog --> VersionCatalog
FormatSpecCatalog --> FormatVariantSpec
FormatCatalog --> FormatSpecCatalog
FormatCatalog --> ParameterCatalog
ResourceProductSpec --> PathTemplate
ResourceSpec --> Server
ResourceSpec --> ResourceProductSpec
SearchTarget --> Product
SearchTarget --> Server
SearchTarget --> PathTemplate
ResourceCatalog --> SearchTarget
ResourceCatalog --> ResourceSpec
LocalResourceSpec --> LocalCollection
DependencySpec --> SearchPreference
DependencySpec --> Dependency
DependencyResolution --> ResolvedDependency
LockProduct --> LockProductAlternative
DependencyLockFile --> LockProduct
LockfileManager --> DependencyLockFile
%% Environment
ProductRegistry --> ParameterCatalog
ProductRegistry --> FormatCatalog
ProductRegistry --> ProductCatalog
ProductRegistry --> RemoteSearchPlanner
ProductRegistry --> ResourceSpec
RegisteredLocalResource --> LocalResourceSpec
RegisteredLocalResource --> Server
WorkSpace --> RegisteredLocalResource
WorkSpace --> LocalResourceSpec
%% Factories
RemoteSearchPlanner --> ProductCatalog
RemoteSearchPlanner --> ParameterCatalog
RemoteSearchPlanner --> ResourceCatalog
RemoteSearchPlanner --> SearchTarget
LocalSearchPlanner --> WorkSpace
LocalSearchPlanner --> ProductRegistry
LocalSearchPlanner --> SearchTarget
SearchPlanner --> ProductRegistry
SearchPlanner --> WorkSpace
SearchPlanner --> RemoteSearchPlanner
SearchPlanner --> LocalSearchPlanner
ConnectionPoolFactory --> ConnectionPool
WormHole --> ConnectionPoolFactory
WormHole --> SearchTarget
DependencyResolver --> DependencySpec
DependencyResolver --> SearchPlanner
DependencyResolver --> WormHole
DependencyResolver --> ProductRegistry
DependencyResolver --> DependencyResolution
DependencyResolver --> LockfileManager
FindPipeline --> ProductRegistry
FindPipeline --> SearchPlanner
FindPipeline --> WormHole
DownloadPipeline --> ProductRegistry
DownloadPipeline --> SearchPlanner
DownloadPipeline --> WormHole
DownloadPipeline --> LocalSearchPlanner
LockfileWriter --> LockfileManager
LockfileWriter --> DependencyResolution
ResolvePipeline --> FindPipeline
ResolvePipeline --> DownloadPipeline
ResolvePipeline --> LockfileWriter
ResolvePipeline --> DependencySpec
Layer Summary
Namespace |
Role |
|---|---|
Specifications |
Pure data models — |
Environments |
Runtime registries — |
Lockfile |
Lock file data model + |
Adapters |
Protocol + FTP/HTTP/Local implementations for directory listing |
Factories |
Orchestration — planners build |