Exemple #1
0
    def __init__(
        self,
        project,
        version="0.1.0",
        description="",
        readme_format="md",
        author=None,
        license=None,
        python="*",
        dependencies=None,
        dev_dependencies=None,
    ):
        self._project = project
        self._package_name = module_name(project)
        self._version = version
        self._description = description
        self._readme_format = readme_format
        self._license = license
        self._python = python
        self._dependencies = dependencies or {}
        if dev_dependencies is None:
            dev_dependencies = {"pytest": "^3.5"}

        self._dev_dependencies = dev_dependencies

        if not author:
            author = "Your Name <*****@*****.**>"

        self._author = author
Exemple #2
0
    def __init__(
        self,
        project,
        version="0.1.0",
        description="",
        readme_format="md",
        author=None,
        license=None,
        python="*",
        dependencies=None,
        dev_dependencies=None,
    ):
        self._project = project
        self._package_name = module_name(project)
        self._version = version
        self._description = description
        self._readme_format = readme_format
        self._license = license
        self._python = python
        self._dependencies = dependencies or {}
        self._dev_dependencies = dev_dependencies or {"pytest": "^3.5"}

        if not author:
            author = "Your Name <*****@*****.**>"

        self._author = author
Exemple #3
0
    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))
Exemple #4
0
    def __init__(
        self,
        project,  # type: str
        version="0.1.0",  # type: str
        description="",  # type: str
        readme_format="md",  # type: str
        author=None,  # type: Optional[str]
        license=None,  # type: Optional[str]
        python="*",  # type: str
        dependencies=None,  # type: Optional[Dict[str, str]]
        dev_dependencies=None,  # type: Optional[Dict[str, str]]
    ):
        self._project = project
        self._package_name = module_name(project)
        self._version = version
        self._description = description
        self._readme_format = readme_format
        self._license = license
        self._python = python
        self._dependencies = dependencies or {}
        self._dev_dependencies = dev_dependencies or {}

        if not author:
            author = "Your Name <*****@*****.**>"

        self._author = author
Exemple #5
0
    def __init__(
        self,
        project: str,
        version: str = "0.1.0",
        description: str = "",
        readme_format: str = "md",
        author: Optional[str] = None,
        license: Optional[str] = None,
        python: str = "*",
        dependencies: Optional[Dict[str, str]] = None,
        dev_dependencies: Optional[Dict[str, str]] = None,
    ):
        self._project = project
        self._package_name = module_name(project)
        self._version = version
        self._description = description
        self._readme_format = readme_format
        self._license = license
        self._python = python
        self._dependencies = dependencies or {}
        self._dev_dependencies = dev_dependencies or {}

        if not author:
            author = "Your Name <*****@*****.**>"

        self._author = author
Exemple #6
0
    def __init__(
        self,
        project: str,
        version: str = "0.1.0",
        description: str = "",
        readme_format: str = "md",
        author: str | None = None,
        license: str | None = None,
        python: str = "*",
        dependencies: dict[str, str | Mapping[str, Any]] | None = None,
        dev_dependencies: dict[str, str | Mapping[str, Any]] | None = None,
    ) -> None:
        self._project = canonicalize_name(project).replace(".", "-")
        self._package_path_relative = Path(
            *(module_name(part)
              for part in canonicalize_name(project).split(".")))
        self._package_name = ".".join(self._package_path_relative.parts)
        self._version = version
        self._description = description

        self._readme_format = readme_format.lower()

        self._license = license
        self._python = python
        self._dependencies = dependencies or {}
        self._dev_dependencies = dev_dependencies or {}

        if not author:
            author = "Your Name <*****@*****.**>"

        self._author = author
Exemple #7
0
    def __init__(
        self,
        project: str,
        version: str = "0.1.0",
        description: str = "",
        readme_format: str = "md",
        author: Optional[str] = None,
        license: Optional[str] = None,  # noqa
        python: str = "*",
        dependencies: Optional[Dict[str, str]] = None,
        dev_dependencies: Optional[Dict[str, str]] = None,
    ):
        self._project = canonicalize_name(project).replace(".", "-")
        self._package_path_relative = Path(
            *(module_name(part)
              for part in canonicalize_name(project).split(".")))
        self._package_name = ".".join(self._package_path_relative.parts)
        self._version = version
        self._description = description

        self._readme_format = readme_format.lower()
        if self._readme_format not in self.ACCEPTED_README_FORMATS:
            raise ValueError(
                "Invalid readme format '{}', use one of {}.".format(
                    readme_format, ", ".join(self.ACCEPTED_README_FORMATS)))

        self._license = license
        self._python = python
        self._dependencies = dependencies or {}
        self._dev_dependencies = dev_dependencies or {}

        if not author:
            author = "Your Name <*****@*****.**>"

        self._author = author
Exemple #8
0
    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))
Exemple #9
0
    def handle(self):
        from pathlib import Path

        from poetry.core.semver import parse_constraint
        from poetry.core.vcs.git import GitConfig
        from poetry.layouts import layout
        from poetry.utils.env import SystemEnv

        if self.option("src"):
            layout_ = layout("src")
        else:
            layout_ = layout("standard")

        path = Path.cwd() / Path(self.argument("path"))
        name = self.option("name")
        if not name:
            name = path.name

        if path.exists():
            if list(path.glob("*")):
                # Directory is not empty. Aborting.
                raise RuntimeError("Destination <fg=yellow>{}</> "
                                   "exists and is not empty".format(path))

        readme_format = "rst"

        config = GitConfig()
        author = None
        if config.get("user.name"):
            author = config["user.name"]
            author_email = config.get("user.email")
            if author_email:
                author += " <{}>".format(author_email)

        current_env = SystemEnv(Path(sys.executable))
        default_python = "^{}".format(".".join(
            str(v) for v in current_env.version_info[:2]))

        dev_dependencies = {}
        python_constraint = parse_constraint(default_python)
        if parse_constraint("<3.5").allows_any(python_constraint):
            dev_dependencies["pytest"] = "^4.6"
        if parse_constraint(">=3.5").allows_all(python_constraint):
            dev_dependencies["pytest"] = "^5.2"

        layout_ = layout_(
            name,
            "0.1.0",
            author=author,
            readme_format=readme_format,
            python=default_python,
            dev_dependencies=dev_dependencies,
        )
        layout_.create(path)

        self.line("Created package <info>{}</> in <fg=blue>{}</>".format(
            module_name(name), path.relative_to(Path.cwd())))
Exemple #10
0
    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))
Exemple #11
0
    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))
Exemple #12
0
    def __init__(self,
                 project,
                 version='0.1.0',
                 readme_format='md',
                 author=None):
        self._project = project
        self._package_name = module_name(project)
        self._version = version
        self._readme_format = readme_format
        self._dependencies = {}
        self._dev_dependencies = {}
        self._include = []

        self._git = Git()
        git_config = self._git.config
        if not author:
            if (git_config.get('user.name') and git_config.get('user.email')):
                author = u'{} <{}>'.format(git_config['user.name'],
                                           git_config['user.email'])
            else:
                author = 'Your Name <*****@*****.**>'

        self._author = author
Exemple #13
0
    def __init__(self,
                 project,
                 version='0.1.0',
                 description='',
                 readme_format='md',
                 author=None,
                 license=None,
                 python='*',
                 dependencies=None,
                 dev_dependencies=None):
        self._project = project
        self._package_name = module_name(project)
        self._version = version
        self._description = description
        self._readme_format = readme_format
        self._license = license
        self._python = python
        self._dependencies = dependencies or {}
        self._dev_dependencies = dev_dependencies or {'pytest': '^3.5'}

        if not author:
            author = 'Your Name <*****@*****.**>'

        self._author = author