class PackageSpec(object): extras = pulgas.override(schema=[text_type], default=attr.Factory(list)) git = ref = file = path = index = pulgas.optional(schema=text_type) os_name = markers = pulgas.optional(schema=text_type) editable = pulgas.override(schema=bool, default=False) version = pulgas.override(schema=text_type, default='*')
class Requires(object): os_name = sys_platform = platform_machine = pulgas.optional(text_type) platform_python_implementation = pulgas.optional(text_type) platform_machine = platform_version = pulgas.optional(text_type) platform_release = platform_system = pulgas.optional(text_type) python_version = python_full_version = pulgas.optional(text_type) implementation_version = pulgas.optional(text_type) implementation_name = sys_platform = pulgas.optional(text_type)
class PyProject(object): @pulgas.config() class BuildSystem(object): requires = pulgas.required(schema=[text_type]) build_backend = pulgas.optional(schema=text_type, real_name='build-backend') build_system = pulgas.optional(schema=pulgas.sub(BuildSystem), real_name='build-system') tool = pulgas.override(schema=object, default=attr.Factory(dict))
class BuildSystem(object): requires = pulgas.required(schema=[text_type]) build_backend = pulgas.optional(schema=text_type, real_name='build-backend')
class Pipfile(object): @pulgas.config() class Source(object): url = pulgas.required(schema=text_type) name = pulgas.required(schema=text_type) verify_ssl = pulgas.override(schema=bool, default=True) # Copied from PEP 508, removed "extra" @pulgas.config() class Requires(object): os_name = sys_platform = platform_machine = pulgas.optional(text_type) platform_python_implementation = pulgas.optional(text_type) platform_machine = platform_version = pulgas.optional(text_type) platform_release = platform_system = pulgas.optional(text_type) python_version = python_full_version = pulgas.optional(text_type) implementation_version = pulgas.optional(text_type) implementation_name = sys_platform = pulgas.optional(text_type) @pulgas.config() class Packages(object): packages = pulgas.custom(default=attr.Factory(dict)) @classmethod def __pulgas_from_config__(cls, config): spec = schema.Or( text_type, # Should be version str pulgas.sub(Pipfile.PackageSpec)) my_schema = schema.Schema({text_type: spec}) validated_config = my_schema.validate(config) def to_spec(value): if isinstance(value, text_type): return Pipfile.PackageSpec(version=value) return value packages = { name: to_spec(value) for name, value in validated_config.items() } return cls(packages=packages) @pulgas.config() class PackageSpec(object): extras = pulgas.override(schema=[text_type], default=attr.Factory(list)) git = ref = file = path = index = pulgas.optional(schema=text_type) os_name = markers = pulgas.optional(schema=text_type) editable = pulgas.override(schema=bool, default=False) version = pulgas.override(schema=text_type, default='*') source = pulgas.override(schema=[pulgas.sub(Source)], default=[ Source(url=('https://pypi.python.org/' 'simple'), verify_ssl=True, name='pypi') ]) requires = pulgas.optional(schema=pulgas.sub(Requires)) packages = pulgas.optional(schema=pulgas.sub(Packages)) dev_packages = pulgas.optional(schema=pulgas.sub(Packages), real_name='dev-packages')