小编poj*_*ojo的帖子

获取类似于"git log"命令的CVS日志/历史记录?

我是一个混蛋,但现在我必须暂时在一个项目中使用CVS.我无法找到一个命令,显示一个格式良好的按时间顺序的提交列表,其中包含作者,提交消息,日期和修订(以及其他任何内容).

相反,我得到了有关RCS文件,锁等的各种无用信息,并且cvs log似乎按文件而不是按日期对提交进行分组,这使得很难对存储库中发生的事情进行概述.

亲爱的CVS专家,有没有办法做到这一点?

git cvs

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

如何分发略有修改的GPL python库?

如果有人提出这个问题我很抱歉.

我在一个小python库中修了bug.这个特殊的库是根据GPL许可的,但它的开发似乎已经死了并且被放弃了(它们的跟踪器上的活动非常低,我已经附加了我的补丁).

我正在开发一个使用这个库的python应用程序.将它与我的修补版本的库一起分发的正确方法是什么?

licensing gpl

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

Python导入:导入没有.py扩展名的模块?

在我开发的Python系统中,我们通常有这个模块结构.

mymodule/
mymodule/mymodule/feature.py
mymodule/test/feature.py
Run Code Online (Sandbox Code Playgroud)

这允许我们的小测试框架轻松导入test/feature.py并运行单元测试.但是,我们现在需要一些shell脚本(用Python编写):

mymodule/
mymodule/scripts/yetanotherfeature.py
mymodule/test/yetanotherfeature.py
Run Code Online (Sandbox Code Playgroud)

yetanotherfeature.py由模块Debian软件包安装到/ usr/bin中.但我们显然不希望扩展.py扩展.所以,为了使测试框架仍然能够导入模块,我必须做这个符号链接的东西:

mymodule/
mymodule/scripts/yetanotherfeature
mymodule/scripts/yetanotherfeature.py @ -> mymodule/scripts/yetanotherfeature
mymodule/test/yetanotherfeature.py
Run Code Online (Sandbox Code Playgroud)

是否可以在Python中通过文件名导入模块,或者您能想到更优雅的解决方案吗?

python debian

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

Python单元测试中具有volatile值的字典?

我需要为返回字典的函数编写单元测试.这本词典中的一个值datetime.datetime.now()当然是每次测试都会改变.

我想在我的断言中完全忽略该键.现在我有一个字典比较函数,但我真的想使用这样的assertEqual:

def my_func(self):
    return {'monkey_head_count': 3, 'monkey_creation': datetime.datetime.now()}

... unit tests

class MonkeyTester(unittest.TestCase):
    def test_myfunc(self):
        self.assertEqual(my_func(), {'monkey_head_count': 3}) # I want to ignore the timestamp!
Run Code Online (Sandbox Code Playgroud)

这样做有什么最佳实践或优雅的解决方案吗?我知道assertAlmostEqual(),但这对浮子iirc只有用.

python unit-testing

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

Python应用程序分发跨平台

我想在OSX(使用py2app)和Debian软件包上分发我的应用程序.

我的应用程序的结构如下:

app/
     debian/
            <lots of debian related stuff>
     scripts/
             app
     app/
         __init__.py
         app.py
         mod1/
              __init__.py
              a.py
         mod2/
              __init__.py
              b.py
Run Code Online (Sandbox Code Playgroud)

我的setup.py看起来像:

from setuptools import setup
import os
import os.path

osname = os.uname()[0]

if osname == 'Darwin':
    APP = ['app/app.py']
    DATA_FILES = []
    OPTIONS = {'argv_emulation': True}

    setup(
        app=APP,
        data_files=DATA_FILES,
        options={'py2app': OPTIONS},
        setup_requires=['py2app'],
    )
elif osname == 'Linux':
        setup(
        name = "app",
        version = "0.0.1",
        description = "foo bar",
        packages = ["app", "app.mod1", "app.mod2"],
        scripts = ["scripts/app"],
        data_files = [
            ("/usr/bin", …
Run Code Online (Sandbox Code Playgroud)

python cross-platform setuptools py2app

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

标签 统计

python ×3

cross-platform ×1

cvs ×1

debian ×1

git ×1

gpl ×1

licensing ×1

py2app ×1

setuptools ×1

unit-testing ×1