小编Ben*_*Ben的帖子

Python 从父目录导入并让 flake8 满意

这种导入工作正常,但在某些方面感觉很脏。主要是它使用 slice* 中的特定数字来获取父路径,并且它惹恼了 flake8 linter。

import os
import sys
sys.path.append(os.path.dirname(__file__)[:-5])
from codeHelpers import completion_message
Run Code Online (Sandbox Code Playgroud)

它位于一个看起来有点像这样的文件系统中:

parent_folder
    __init__.py
    codeHelpers.py

    child_folder
        this_file.py
Run Code Online (Sandbox Code Playgroud)

child_folder实际上被称为week1,因此切片中的 5)

这个问题与Python 从父目录导入非常相似,但在这种情况下,讨论的重点是从终点运行测试是否合适。就我而言,我有一系列目录,其中的代码使用位于父级中的帮助程序。

上下文:每个目录都是一组每周练习,所以我想让它们尽可能简单。

有没有一种更干净、更Pythonic的方法来执行此导入?

@cco 解决了数字问题,但它仍然扰乱了 linter。

python python-import flake8

6
推荐指数
1
解决办法
2363
查看次数

从任意概率密度函数生成随机数

我希望能够使用来自绘制曲线的概率密度函数生成随机数。下面这两个在曲线下具有相同的面积,但应生成具有不同特征的随机数列表。

在此处输入图片说明

我的直觉是,一种方法是对曲线进行采样,然后使用这些矩形的面积np.random.choice来输入一个范围以在该矩形范围内进行普通随机。

在此处输入图片说明

感觉这不是一种非常有效的方法。有没有更“正确”的方法来做到这一点?

我在实际这样做时遇到了困难:

import matplotlib.pyplot as plt
import numpy as np

areas = [4.397498, 4.417111, 4.538467, 4.735034, 4.990129, 5.292455, 5.633938,
         6.008574, 6.41175, 5.888393, 2.861898, 2.347887, 2.459234, 2.494357,
         2.502986, 2.511614, 2.520243, 2.528872, 2.537501, 2.546129, 7.223747,
         7.223747, 2.448148, 1.978746, 1.750221, 1.659351, 1.669999]
divisons = [0.0, 0.037037, 0.074074, 0.111111, 0.148148, 0.185185, 0.222222,
            0.259259, 0.296296, 0.333333, 0.37037, 0.407407, 0.444444, 0.481481,
            0.518519, 0.555556, 0.592593, 0.62963, 0.666667, 0.703704, 0.740741,
            0.777778, 0.814815, 0.851852, 0.888889, 0.925926, 0.962963, 1.0]
weights = [a/sum(areas) for a in areas] …
Run Code Online (Sandbox Code Playgroud)

python random statistics

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

LinkedIn API 能否返回用户已保存文章的列表?

文章 API的 LinkedIn 文档显示我可以通过执行以下操作来获取特定文章的内容等

GET https://api.linkedin.com/v2/originalArticles/{originalArticlesId}
Run Code Online (Sandbox Code Playgroud)

但我不清楚我originalArticlesId从哪里得到的。如何列出任何给定用户已保存的文章?

linkedin

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

为什么 mypy 看不到 typeshed 中的类型?

我正在尝试向现有代码库添加更多 mypy 类型注释。我有一个使用大量 bs4 的文件。

当我对此文件运行 mypy 检查器时,出现错误:

error: Skipping analyzing "bs4": module is installed, but missing library stubs or py.typed marker
Run Code Online (Sandbox Code Playgroud)

关于“缺少库存根”的 mypy 文档中,它说:

Mypy 不会尝试推断您已安装的任何第三方库的类型,除非它们已声明自己是符合 PEP 561 的存根包(例如使用 py.typed 文件)或已在typeshed(类型的存储库)上注册。标准库和一些第三方库。

但是当我查看 typeshed时,一组存根。如何修复该错误并告诉它从 typeshed 查看存根定义?

BS4 和 mypy 都运行最新版本。

这个问题提出了一个关于黑色的类似问题,但是当我在代码中测试黑色时,mypy 并没有抱怨,但似乎他们已经以不同的方式解决了它,因为 typeshed 中没有黑色存根。

python beautifulsoup mypy

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

如何在捕获组内进行替换

我正在修改现有的 HTML 文档。我正在做一些事情,比如添加目录等。

我有一个带有此 ID 的标题:(id="transcending intellectual limitations"真的!)

我希望能够找到整个 ID,然后用连字符替换空格。

如果我只有 ID,那会很简单,但我不想删除整个文档中的所有空格。

我对正则表达式相当陌生,我正在使用 Sublime 的查找和替换来执行此操作。

regex sublimetext

4
推荐指数
1
解决办法
2003
查看次数

增加graphviz中的秩间距

我有一个使用D3 graphviz布置的图表。它以非常密集的方式布局,我希望它使用更多的屏幕宽度。

以不使用整个屏幕的方式布置的图形

我试过调整 theranksep和 the ratio,但似乎都没有任何效果。我也试过更改节点边框,但没有效果。改变边缘minlength只会使边缘看起来松软。我可以尝试给每个节点一个隐形的孩子,但这似乎是一个可怕的黑客。

为清楚起见,rank是指节点列之间的水平间距。(图表从左到右排列。)

理想情况下,我可以给它一个纵横比,它会充分利用该空间以不需要太多杂技的方式布置图形。

  • 我错过了一些明显的东西吗?
  • 我很可能错误地使用了这些选项
  • 或者 D3 graphviz 实现可能没有这些功能?
  • 没有好的方法可以做到这一点吗?

graphviz d3.js

4
推荐指数
1
解决办法
1480
查看次数

在wordpress上跟踪内部用户

我们有一个内部的WordPress网站,大约有25个用户.我们当前的Google分析设置将向我们显示一个页面被访问过多少次,但由于每个人都来自同一个IP地址,因此它认为它基本上是一个非常勤奋的人点击了很多.

有没有人有跟踪个人用户的策略?

(它们都是根据我们的单点登录登录到WordPress.)

wordpress analytics google-analytics

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

我无法安装 json 模块

每当我尝试安装软件包时,都会出现此错误:

ERROR: Could not find a version that satisfies the requirement json (from versions: none)
ERROR: No matching distribution found for json
Run Code Online (Sandbox Code Playgroud)

python json pip package

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