小编And*_*rra的帖子

Poetry 管理 python 包 CLI

我正在使用具有以下结构的 Poetry 开发 Python 包:

/packagename
 /packagename
  /tests
   __init__.py
   test_packagename.py
  __init__.py
  packagename.py
pyproject.toml
Run Code Online (Sandbox Code Playgroud)

所有的包代码都在 packagename.py 中,它以__init__.py.

我想添加一个 CLI,我的目标是在命令行中执行以下操作:

<packagename> <packagefunction>
Run Code Online (Sandbox Code Playgroud)

为此,我使用了 Python 的 click 包并将我的<packagefunction>内部写packagename.py为:

 @click.command()
 def packagefunction():
Run Code Online (Sandbox Code Playgroud)

目前,我已将入口点添加到诗歌配置文件中:

[tool.poetry.scripts]
<packagefunction> = '<packagename>:<packagefunction>'
Run Code Online (Sandbox Code Playgroud)

并运行:

poetry run <packagefunction>
Run Code Online (Sandbox Code Playgroud)

完美执行。

但是,我知道这不是正确的方法,我希望 CLI 使用上面显示的命令执行。

python command-line-interface python-click python-poetry

9
推荐指数
1
解决办法
2482
查看次数

如何在 Gitlab-ci 中正确登录以使用来自 GCR 的私有图像?

我正在尝试登录 CGR 并在 Gitlab-ci runner 中使用一些私有 docker 图像。

我在 Google Cloud 中创建了一个新项目并激活了 Google Cloud Registry API。我还创建了一个新的服务帐户 (IAM),我在其中授予了先前 Cloud Registry 实例的所有权权限。然后我生成了一个json密钥。我使用以下 gitlab-ci 配置并在本地机器上测试了密钥:

image: docker:latest
services:
  - docker:dind
auth:
  stage: auth
  script:
    - docker login -u _json_key --password-stdin https://gcr.io < ./keyfile.json
Run Code Online (Sandbox Code Playgroud)

它似乎经过身份验证和授权推/拉图像。

我需要做的是拥有以下内容,我需要转到我的私人存储库并在 gitlab-ci runner 中使用这些图像。像这样的东西:

before_script:
    - docker login -u _json_key --password-stdin https://gcr.io < ./keyfile.json

build:
  stage: build
  image: gcr.io/image-repo/image
  script:
    - gradle clean build

deploy:
  stage: deploy
  image: gcr.io/image-repo/image
  script:
    - gradle publish
  only:
    - master
Run Code Online (Sandbox Code Playgroud)

但是,我不断收到此错误:

在 docker-auto-scale …

docker google-cloud-platform gitlab-ci gitlab-ci-runner

5
推荐指数
1
解决办法
1785
查看次数

如何在 SQLAlchemy 中的关联对象中创建基于条目值的约束?

给出以下最小示例:

class Association(Base):
    __tablename__ = "association_table"
    left_id = Column(ForeignKey("left_table.id"), primary_key=True)
    right_id = Column(ForeignKey("right_table.id"), primary_key=True)
    first_child = Column(Boolean, nullable=False)
    child = relationship("Child", back_populates="parents")
    parent = relationship("Parent", back_populates="children")
class Parent(Base):
    __tablename__ = "left_table"
    id = Column(Integer, primary_key=True)
    children = relationship("Association", back_populates="parent")
class Child(Base):
    __tablename__ = "right_table"
    id = Column(Integer, primary_key=True)
    parents = relationship("Association", back_populates="child")
Run Code Online (Sandbox Code Playgroud)

如何限制只有一个孩子可以成为父母的第一个孩子?(忽略“夫妇第一个孩子”的逻辑)

python sqlalchemy

2
推荐指数
1
解决办法
82
查看次数