def __init__(self, name, directory="."): self._name = module_name(name) self._in_src = False # It must exist either as a .py file or a directory, but not both pkg_dir = Path(directory, self._name) py_file = Path(directory, self._name + ".py") if pkg_dir.is_dir() and py_file.is_file(): raise ValueError("Both {} and {} exist".format(pkg_dir, py_file)) elif pkg_dir.is_dir(): self._path = pkg_dir self._is_package = True elif py_file.is_file(): self._path = py_file self._is_package = False else: # Searching for a src module src_pkg_dir = Path(directory, "src", self._name) src_py_file = Path(directory, "src", self._name + ".py") if src_pkg_dir.is_dir() and src_py_file.is_file(): raise ValueError("Both {} and {} exist".format( pkg_dir, py_file)) elif src_pkg_dir.is_dir(): self._in_src = True self._path = src_pkg_dir self._is_package = True elif src_py_file.is_file(): self._in_src = True self._path = src_py_file self._is_package = False else: raise ValueError( "No file/folder found for package {}".format(name))
def __init__(self, name, directory=".", packages=None, includes=None): self._name = module_name(name) self._in_src = False self._is_package = False self._path = Path(directory) self._includes = [] packages = packages or [] includes = includes or [] if not packages: # It must exist either as a .py file or a directory, but not both pkg_dir = Path(directory, self._name) py_file = Path(directory, self._name + ".py") if pkg_dir.is_dir() and py_file.is_file(): raise ValueError("Both {} and {} exist".format( pkg_dir, py_file)) elif pkg_dir.is_dir(): packages = [{"include": str(pkg_dir.relative_to(self._path))}] elif py_file.is_file(): packages = [{"include": str(py_file.relative_to(self._path))}] else: # Searching for a src module src = Path(directory, "src") src_pkg_dir = src / self._name src_py_file = src / (self._name + ".py") if src_pkg_dir.is_dir() and src_py_file.is_file(): raise ValueError("Both {} and {} exist".format( pkg_dir, py_file)) elif src_pkg_dir.is_dir(): packages = [{ "include": str(src_pkg_dir.relative_to(src)), "from": str(src.relative_to(self._path)), }] elif src_py_file.is_file(): packages = [{ "include": str(src_py_file.relative_to(src)), "from": str(src.relative_to(self._path)), }] else: raise ModuleOrPackageNotFound( "No file/folder found for package {}".format(name)) for package in packages: formats = package.get("format") if formats and not isinstance(formats, list): formats = [formats] self._includes.append( PackageInclude( self._path, package["include"], formats=formats, source=package.get("from"), )) for include in includes: self._includes.append(Include(self._path, include))
def __init__(self, name, directory=".", packages=None, includes=None): self._name = module_name(name) self._in_src = False self._is_package = False self._path = Path(directory) self._includes = [] packages = packages or [] includes = includes or [] if not packages: # It must exist either as a .py file or a directory, but not both pkg_dir = Path(directory, self._name) py_file = Path(directory, self._name + ".py") if pkg_dir.is_dir() and py_file.is_file(): raise ValueError("Both {} and {} exist".format(pkg_dir, py_file)) elif pkg_dir.is_dir(): packages = [{"include": str(pkg_dir.relative_to(self._path))}] elif py_file.is_file(): packages = [{"include": str(py_file.relative_to(self._path))}] else: # Searching for a src module src = Path(directory, "src") src_pkg_dir = src / self._name src_py_file = src / (self._name + ".py") if src_pkg_dir.is_dir() and src_py_file.is_file(): raise ValueError("Both {} and {} exist".format(pkg_dir, py_file)) elif src_pkg_dir.is_dir(): packages = [ { "include": str(src_pkg_dir.relative_to(src)), "from": str(src.relative_to(self._path)), } ] elif src_py_file.is_file(): packages = [ { "include": str(src_py_file.relative_to(src)), "from": str(src.relative_to(self._path)), } ] else: raise ValueError("No file/folder found for package {}".format(name)) for package in packages: self._includes.append( PackageInclude(self._path, package["include"], package.get("from")) ) for include in includes: self._includes.append(Include(self._path, include))
def __init__(self, name, directory='.'): self._name = module_name(name) # It must exist either as a .py file or a directory, but not both pkg_dir = Path(directory, self._name) py_file = Path(directory, self._name + '.py') if pkg_dir.is_dir() and py_file.is_file(): raise ValueError("Both {} and {} exist".format(pkg_dir, py_file)) elif pkg_dir.is_dir(): self._path = pkg_dir self._is_package = True elif py_file.is_file(): self._path = py_file self._is_package = False else: raise ValueError("No file/folder found for package {}".format(name))
def add_dependency( self, name, # type: str constraint=None, # type: Union[str, dict, None] category="main", # type: str ): # type: (...) -> Dependency if constraint is None: constraint = "*" if isinstance(constraint, dict): optional = constraint.get("optional", False) python_versions = constraint.get("python") platform = constraint.get("platform") markers = constraint.get("markers") allows_prereleases = constraint.get("allows-prereleases", False) if "git" in constraint: # VCS dependency dependency = VCSDependency( name, "git", constraint["git"], branch=constraint.get("branch", None), tag=constraint.get("tag", None), rev=constraint.get("rev", None), optional=optional, ) elif "file" in constraint: file_path = Path(constraint["file"]) dependency = FileDependency( name, file_path, category=category, base=self.root_dir ) elif "path" in constraint: path = Path(constraint["path"]) if self.root_dir: is_file = (self.root_dir / path).is_file() else: is_file = path.is_file() if is_file: dependency = FileDependency( name, path, category=category, optional=optional, base=self.root_dir, ) else: dependency = DirectoryDependency( name, path, category=category, optional=optional, base=self.root_dir, develop=constraint.get("develop", True), ) else: version = constraint["version"] dependency = Dependency( name, version, optional=optional, category=category, allows_prereleases=allows_prereleases, source_name=constraint.get("source"), ) if not markers: marker = AnyMarker() if python_versions: dependency.python_versions = python_versions marker = marker.intersect( parse_marker( create_nested_marker( "python_version", dependency.python_constraint ) ) ) if platform: marker = marker.intersect( parse_marker( create_nested_marker( "sys_platform", parse_generic_constraint(platform) ) ) ) else: marker = parse_marker(markers) if not marker.is_any(): dependency.marker = marker if "extras" in constraint: for extra in constraint["extras"]: dependency.extras.append(extra) else: dependency = Dependency(name, constraint, category=category) if category == "dev": self.dev_requires.append(dependency) else: self.requires.append(dependency) return dependency
def add_dependency( self, name, # type: str constraint=None, # type: Union[str, dict, None] category="main", # type: str ): # type: (...) -> Dependency if constraint is None: constraint = "*" if isinstance(constraint, dict): optional = constraint.get("optional", False) python_versions = constraint.get("python") platform = constraint.get("platform") allows_prereleases = constraint.get("allows-prereleases", False) if "git" in constraint: # VCS dependency dependency = VCSDependency( name, "git", constraint["git"], branch=constraint.get("branch", None), tag=constraint.get("tag", None), rev=constraint.get("rev", None), optional=optional, ) elif "file" in constraint: file_path = Path(constraint["file"]) dependency = FileDependency( file_path, category=category, base=self.root_dir ) elif "path" in constraint: path = Path(constraint["path"]) if self.root_dir: is_file = (self.root_dir / path).is_file() else: is_file = path.is_file() if is_file: dependency = FileDependency( path, category=category, optional=optional, base=self.root_dir ) else: dependency = DirectoryDependency( path, category=category, optional=optional, base=self.root_dir, develop=constraint.get("develop", False), ) else: version = constraint["version"] dependency = Dependency( name, version, optional=optional, category=category, allows_prereleases=allows_prereleases, ) if python_versions: dependency.python_versions = python_versions if platform: dependency.platform = platform if "extras" in constraint: for extra in constraint["extras"]: dependency.extras.append(extra) else: dependency = Dependency(name, constraint, category=category) if category == "dev": self.dev_requires.append(dependency) else: self.requires.append(dependency) return dependency
def add_dependency( self, name, # type: str constraint=None, # type: Union[str, dict, None] category='main' # type: str ): # type: (...) -> Dependency if constraint is None: constraint = '*' if isinstance(constraint, dict): optional = constraint.get('optional', False) python_versions = constraint.get('python') platform = constraint.get('platform') allows_prereleases = constraint.get('allows-prereleases', False) if 'git' in constraint: # VCS dependency dependency = VCSDependency( name, 'git', constraint['git'], branch=constraint.get('branch', None), tag=constraint.get('tag', None), rev=constraint.get('rev', None), optional=optional, ) elif 'file' in constraint: file_path = Path(constraint['file']) dependency = FileDependency(file_path, category=category, base=self.cwd) elif 'path' in constraint: path = Path(constraint['path']) if self.cwd: is_file = (self.cwd / path).is_file() else: is_file = path.is_file() if is_file: dependency = FileDependency(path, category=category, optional=optional, base=self.cwd) else: dependency = DirectoryDependency(path, category=category, optional=optional, base=self.cwd, develop=constraint.get( 'develop', False)) else: version = constraint['version'] dependency = Dependency(name, version, optional=optional, category=category, allows_prereleases=allows_prereleases) if python_versions: dependency.python_versions = python_versions if platform: dependency.platform = platform if 'extras' in constraint: for extra in constraint['extras']: dependency.extras.append(extra) else: dependency = Dependency(name, constraint, category=category) if category == 'dev': self.dev_requires.append(dependency) else: self.requires.append(dependency) return dependency
def add_dependency( self, name, # type: str constraint=None, # type: Union[str, dict, None] category="main", # type: str ): # type: (...) -> Dependency if constraint is None: constraint = "*" if isinstance(constraint, dict): optional = constraint.get("optional", False) python_versions = constraint.get("python") platform = constraint.get("platform") allows_prereleases = constraint.get("allows-prereleases", False) if "git" in constraint: # VCS dependency dependency = VCSDependency( name, "git", constraint["git"], branch=constraint.get("branch", None), tag=constraint.get("tag", None), rev=constraint.get("rev", None), optional=optional, ) elif "file" in constraint: file_path = Path(constraint["file"]) dependency = FileDependency(file_path, category=category, base=self.root_dir) elif "path" in constraint: path = Path(constraint["path"]) if self.root_dir: is_file = (self.root_dir / path).is_file() else: is_file = path.is_file() if is_file: dependency = FileDependency(path, category=category, optional=optional, base=self.root_dir) else: dependency = DirectoryDependency( path, category=category, optional=optional, base=self.root_dir, develop=constraint.get("develop", False), ) else: version = constraint["version"] dependency = Dependency( name, version, optional=optional, category=category, allows_prereleases=allows_prereleases, ) if python_versions: dependency.python_versions = python_versions if platform: dependency.platform = platform if "extras" in constraint: for extra in constraint["extras"]: dependency.extras.append(extra) else: dependency = Dependency(name, constraint, category=category) if category == "dev": self.dev_requires.append(dependency) else: self.requires.append(dependency) return dependency