我正在使用具有以下结构的 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 使用上面显示的命令执行。
我正在尝试登录 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 …
给出以下最小示例:
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)
如何限制只有一个孩子可以成为父母的第一个孩子?(忽略“夫妇第一个孩子”的逻辑)