小编Bas*_*hur的帖子

使用pyproject.toml时还需要requirements.txt吗?

自 2022 年中期以来,现在可以取消setup.pysetup.cfg转而使用pyproject.toml. 可编辑安装适用于最新版本的 setuptools 和 pip,甚至官方打包教程setup.py也从pyproject.toml.

然而,有关的文档requirements.txt似乎也已被删除,我想知道现在将固定的需求放在哪里?

回顾一下:过去的常见做法是放置依赖项(没有版本固定),以setup.py避免当此包与需要相同依赖项但版本要求冲突的其他包一起安装时出现问题。对于打包库来说, asetup.py通常就足够了。

对于部署(即非库),您通常还提供requirements.txt版本固定的依赖项。因此,您不会意外地获得该包经过测试的最新、最好的依赖项版本。

所以我的问题是,有什么改变吗?requirements.txt当与 一起使用时,您仍然将固定的需求放在其中吗pyproject.toml?或者有一个额外的部分pyproject.toml吗?某处有相关文档吗?

python requirements.txt python-packaging pyproject.toml

49
推荐指数
3
解决办法
2万
查看次数

.env(或 dotenv)文件到底是什么?

有很多可以利用.env文件的程序。它们中的大多数支持基本的 bash 语法,其他支持更高级的东西,例如文件中的模板.env。您使用文件的方式.env也有很大差异。通常在这种情况下,您会从 12-factor-app 开始,它指出您应该将(某些)配置导出为环境变量,这显然会导致两个用例:

  • 有些 dotenv 程序就是这样做的:您在 shell 上的命令前面加上前缀dotenv,dotenv 文件中的变量将神奇地在您的进程中可用。
  • 然而,其他人提供了实际上从代码中读取文件的——这是一种非常不同的方法,因为您的代码突然直接解释文件并且不再“看到”环境变量。.env.env

由于对用法、用例和语法有如此多不同的解释,是否有正确的.env文件定义或一些普遍接受的标准?如果没有,至少有一些历史参考资料?

dotenv

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

在 GitLab CI 中将环境变量从一个阶段导出到下一个阶段

有没有办法export在 GitLab CI 中将环境变量从一个阶段转移到下一个阶段?我正在寻找类似于作业工件功能的东西,仅适用于环境变量而不是文件。

假设我正在一个configure阶段配置构建,并希望将结果存储为(秘密的、受保护的)环境变量以供下一个阶段使用。我可以保护文件中的配置并将它们存储为作业工件,但我担心文件中提供的秘密可以供所有人下载。

environment-variables gitlab gitlab-ci

18
推荐指数
3
解决办法
2万
查看次数

DataDog 中的计数和计量指标类型有什么区别?

DataDog 中的计数计量指标类型有什么区别?或者更确切地说,我什么时候应该选择其中一种而不是另一种?他们网站上的定义对我没有多大帮助:

\n

数数:

\n
\n

COUNT 指标提交类型表示一个时间间隔内事件发生的总数。COUNT 可用于跟踪对数据库进行的连接总数或对端点的请求总数。这个事件数量可以随着时间的推移而累积或减少\xe2\x80\x94它不是单调增加的。

\n
\n

测量:

\n
\n

GAUGE 指标提交类型表示一个时间间隔内事件的快照。该代表性快照值是在某个时间间隔内提交给代理的最后一个值。GAUGE 可用于测量连续\xe2\x80\x94 报告的内容,例如可用磁盘空间或使用的内存。

\n
\n

类型count似乎与类型有些相关rate,但对我来说,不清楚为什么或何时应该使用count而不是gauge. 我的意思是,原则上“某物”的测量总是可以作为量规呈现,不是吗?

\n

datadog

17
推荐指数
1
解决办法
1万
查看次数

git switch和git checkout <branch>有什么区别

Git 2.23 引入了一个新命令git switch-阅读文档后,似乎几乎git checkout <branchname>可以与某人解释差异或用例一样?

引入了两个新命令“ git switch”和“ git restore”,以拆分“检出分支以改进其历史记录”和“检出索引之外的路径和/或树状结构以推进当前的操作” “ git checkout”命令中删除“历史记录”。

git git-checkout

16
推荐指数
4
解决办法
1449
查看次数

在 GitLab-CI 中删除分支之前执行脚本

删除分支,GitLab-CI 在动态环境中执行stop-environment脚本。这有效地迫使您将所有拆卸逻辑放入而不是仅调用的脚本中。.gitlab-ci.yml.gitlab-ci.yml

有谁知道解决方法?我有一个删除部署的 shell 脚本。该脚本是存储库的一部分,也可以在本地调用(即在 CI 环境中不是唯一的)。我希望 GitLab-CI 在删除动态环境时调用这个脚本, 但是当分支被删除时它显然不再存在。我也无法将此脚本放入工件中,因为它是在configure脚本构建之前生成的,并且包含机密。如果可以删除分支之前执行拆卸脚本,那就太好了。

这是相关的摘录 .gitlab-ci.yml

deploy_dynamic_staging:
    stage: deploy
    variables:
        SERVICE_NAME: foo-service-$CI_BUILD_REF_SLUG
    script:
        - ./configure
        - make deploy.staging
    environment:
        name: staging/$CI_BUILD_REF_SLUG
        on_stop: stop_dynamic_staging
    except:
        - master

stop_dynamic_staging:
    stage: deploy
    variables:
        GIT_STRATEGY: none
    script:
        - make teardown # <- this fails
    when: manual
    environment:
        name: staging/$CI_BUILD_REF_SLUG
        action: stop
Run Code Online (Sandbox Code Playgroud)

gitlab gitlab-ci

10
推荐指数
1
解决办法
2165
查看次数

使用 pip install -e 在 setup.py 中安装 data_files

我正在尝试为我的 CLI 工具提供一个用 Python 编写的 bash 完成脚本。根据Python Packaging Authoritydata_files在 setup.py 中正是我需要的:

尽管配置 package_data 足以满足大多数需求,但在某些情况下,您可能需要将数据文件放在包之外。data_files 指令允许您这样做。如果您需要安装其他程序使用的文件,而这些程序可能不知道 Python 包,这将非常有用。

所以我添加了这样的完成文件:

data_files=[
    ('/usr/share/bash-completion/completions', ['completion/dotenv']),
],
Run Code Online (Sandbox Code Playgroud)

并尝试使用以下方法对其进行测试:

pip install -e .

在我的虚拟环境中。但是,未安装完成脚本。我忘记了什么或pip坏了吗?完整的项目可以在这里找到

python pip setuptools bash-completion

8
推荐指数
1
解决办法
1758
查看次数

Kafka 偏移管理:enable.auto.commit 与 enable.auto.offset.store

默认情况下,Kafka Consumer 会定期提交当前偏移量,除非通过禁用enable.auto.commit. 根据文档,您将负责自己提交偏移量。所以当我想要手动控制时,这似乎是要走的路,但是文档还提到了存储的偏移量,如果你想要手动控制,你应该禁用enable.auto.offset.store和使用rd_kafka_offsets_store()并保持自动提交不变。

有人可以解释为什么首选后一种方法吗?禁用自动提交应该具有完全相同的效果吗?

apache-kafka librdkafka

8
推荐指数
1
解决办法
3302
查看次数

在 vim 中为 structurizr 的 DSL 使用哪种语法高亮

Structurizr是一个推荐用于设计c4model 的工具,它带有自己的DSL。它看起来有点像这样:

workspace {

    model {
        user = person "User"
        softwareSystem = softwareSystem "Software System"

        user -> softwareSystem "Uses"
    }

    views {
        systemContext softwareSystem {
            include *
            autolayout
        }

        theme default
    }
    
}
Run Code Online (Sandbox Code Playgroud)

文件扩展名是.dsl. 有谁知道你必须在 vim 中设置哪种文件类型才能获得语法突出显示?它可能不会是完美的匹配,但也许比没有好。我问,因为如果你把这样的文件放到 github 或 gitlab 上,你确实会得到一些语法突出显示,但 vim 猜测文件类型为,dsl并且突出显示根本不显示。

vim structurizr

8
推荐指数
1
解决办法
441
查看次数

如何从Makefile中的.env文件加载和导出变量?

.env在Makefile中使用a的最佳方法是什么,即加载该文件并导出子shell中的所有变量make

如果提议的解决方案make仅适用于例如不使用任何第三方工具,那将是很好的.此外,.env文件支持多行变量,例如:

FOO="this\nis\na\nmultiline\nvar"

这就是为什么这个解决方案可能不够的原因.

makefile environment-variables

7
推荐指数
3
解决办法
5129
查看次数