我正在关注编程凤凰书,正在编写实现登录/注销经过身份验证的用户的部分,并且收到错误我不知道该怎么做:
mix phoenix.server
Compiled lib/rumbl.ex
Compiled lib/rumbl/repo.ex
Compiled web/channels/user_socket.ex
Compiled web/web.ex
Compiled web/models/user.ex
== Compilation error on file web/router.ex ==
** (UndefinedFunctionError) undefined function: Rumbl.Auth.init/1 (module Rumbl.Auth is not available)
Rumbl.Auth.init([repo: Rumbl.Repo])
(plug) lib/plug/builder.ex:198: Plug.Builder.init_module_plug/3
(plug) lib/plug/builder.ex:186: anonymous fn/4 in Plug.Builder.compile/3
(elixir) lib/enum.ex:1387: Enum."-reduce/3-lists^foldl/2-0-"/3
(plug) lib/plug/builder.ex:186: Plug.Builder.compile/3
web/router.ex:4: (module)
(stdlib) erl_eval.erl:669: :erl_eval.do_apply/6
(elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8
== Compilation error on file lib/rumbl/endpoint.ex ==
** (UndefinedFunctionError) undefined function: Rumbl.Router.init/1 (module Rumbl.Router is not available)
Rumbl.Router.init([])
(plug) lib/plug/builder.ex:198: Plug.Builder.init_module_plug/3
(plug) …Run Code Online (Sandbox Code Playgroud) 将大型嵌套Python字典转换为JSON以便在小型库中使用(即不通过Web)有什么好处?
我正在解析配置文件并存储不同的数据位以便以后检索和输出.目前,所有信息都存储在嵌套的dict中,其中也有列表.这并不是说这个方法存在问题,我只是想知道使用标准数据格式是否有益,而嵌套的dict看起来很像JSON.
我有一个很长的正则表达式,我想继续到下一行,但我尝试的一切给了我一个EOL或打破正则表达式.我已经在括号内继续了一行,并阅读了这一点,除此之外,我如何在Python中进行换行(换行)?
工作,但仍然太长:
REGEX = re.compile(
r'\d\s+\d+\s+([A-Z0-9-]+)\s+([0-9]+.\d\(\d\)[A-Z0-9]+)\s+([a-zA-Z\d-]+)')
Run Code Online (Sandbox Code Playgroud)
错误:
REGEX = re.compile(
r'\d\s+\d+\s+([A-Z0-9-]+)\s+([0-9]+.\d\(\d\)[A-Z0-9]+
)\s+([a-zA-Z\d-]+)')
SyntaxError: EOL while scanning string literal
REGEX = re.compile(
r'\d\s+\d+\s+([A-Z0-9-]+)\s+([0-9]+.\d\(\d\
)[A-Z0-9]+)\s+([a-zA-Z\d-]+)')
sre_constants.error: unbalanced parenthesis
REGEX = re.compile(
r'\d\s+\d+\s+([A-Z0-9-]+)\s+( \
[0-9]+.\d\(\d\)[A-Z0-9]+)\s+([a-zA-Z\d-]+)')
regex no longer works
REGEX = (re.compile(
r'\d\s+\d+\s+([A-Z0-9-]+)\s+(
[0-9]+.\d\(\d\)[A-Z0-9]+)\s+([a-zA-Z\d-]+)'))
SyntaxError: EOL while scanning string literal
Run Code Online (Sandbox Code Playgroud)
我已经能够缩短我的正则表达式,所以这不再是一个问题,但我现在有兴趣知道如何使用长正则表达式进行行继续?
我正在尝试测试可在文件上运行的某些代码,但似乎无法理解如何使用替换实际文件,mock而io.StringIO
我的代码几乎是以下内容:
class CheckConfig(object):
def __init__(self, config):
self.config = self._check_input_data(config)
def _check_input_data(self, data):
if isinstance(data, list):
return self._parse(data)
elif os.path.isfile(data):
with open(data) as f:
return self._parse(f.readlines())
def _parse(self, data):
return data
Run Code Online (Sandbox Code Playgroud)
我有一个可以接受列表或文件的类,如果它是一个文件,则将其打开并将其提取到列表中,然后对结果列表执行所需的操作。
我的工作测试如下:
def test_CheckConfig_with_file():
config = 'config.txt'
expected = parsed_file_data
actual = CheckConfig(config).config
assert expected == actual
Run Code Online (Sandbox Code Playgroud)
我想替换对文件系统的调用。我试过用替换文件,io.StringIO但从中得到一个TypeError,os.path.isfile()因为它期望是字符串,字节或整数。我也尝试isfile像这样模拟方法:
@mock.patch('mymodule.os.path')
def test_CheckConfig_with_file(mock_path):
mock_path.isfile.return_value = True
config = io.StringIO('data')
expected = parsed_file_data
actual = CheckConfig(config).config
assert expected == actual
Run Code Online (Sandbox Code Playgroud)
但是我仍然得到与导致异常 …
我正在关注Git Pro的书(http://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server)来设置我的第一个git远程服务器Ubuntu Linux系统.我跟着这个:
$ git remote add origin git@gitserver:/opt/git/inventory.git
$ git push origin Windows
Run Code Online (Sandbox Code Playgroud)
我收到此消息:
Counting objects: 33, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (28,28) done.
Writing objects: 100% (33/33), 7.30 KiB | 0 bytes/s, done.
Total 33 (delta 13), reused 0 (delta 0)
To git@gitserver:/opt/git/inventory.git
* [new branch] Windows -> Windows
Run Code Online (Sandbox Code Playgroud)
但是当我git status在远程服务器上键入时(在/opt/git/inventory.git/中),我收到错误消息fatal: This operation must be run in a work tree
远程存储库似乎不包含本地存储库中的任何文件,当我将远程存储库克隆到不同的本地文件夹时,没有文件,只有.git文件夹.
我在这里看了其他相关问题:
但我不清楚为什么会这样,以及我可以做些什么来弥补它.
我很难在Django中制作pdf文件.根据我之前的问题,我遇到了同样的错误.
当我运行以下代码时'list' object has no attribute 'encode',pdf保存在媒体文件夹中,但它是纯文本文件.我认为被引用的对象是查询集sections.
@login_required
def generate_pdf(request, slug):
# Prepare context
document = get_object_or_404(Document, slug=slug)
sections = \
get_list_or_404(Section.objects.filter
(associated_document__startswith=document.slug))
data = {'document': document, 'sections': sections}
# Render html content through html template with context
template = get_template('lld/lld_pdf.html')
html = template.render(Context(data))
file = open('/home/project/media/test.pdf', "w+b")
print type(document)
print type(sections)
print type(data)
print type(template)
print type(html)
print type(file)
pisaStatus = pisa.CreatePDF(html.encode('utf-8'), dest=file)
# Return PDF document through a Django HTTP …Run Code Online (Sandbox Code Playgroud) 我正在为我们的Go mono存储库建立一个Jenkins多分支管道。我该如何设置GOPATHgo工具以便找到Jenkins在哪里获取回购协议?
我尝试使用environment语法设置它,如下所示:
pipeline {
agent {
docker {
image 'golang:1.9.2'
}
}
triggers {
gitlab(triggerOnPush: true, triggerOnMergeRequest: true, branchFilterType: 'All')
}
post {
failure {
updateGitlabCommitStatus name: 'jenkins-build', state: 'failed'
}
success {
updateGitlabCommitStatus name: 'jenkins-build', state: 'success'
}
}
environment {
GOPATH = "${pwd}"
}
stages {
stage('Build') {
steps {
updateGitlabCommitStatus name: 'jenkins-build', state: 'pending'
echo 'Linting...'
sh 'go version'
sh 'go get -u -v github.com/golang/lint/golint'
sh 'golint -set_exit_status ./...'
echo 'Building...'
sh …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用csv文件中的变量呈现jinja2模板:
# -*- coding: utf-8 -*-
import csv
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates'))
template = env.get_template('baseconfig.j2')
with open('C:\Users\\robertph\CompanyA.csv', mode='r') as csvfile:
dictReader = csv.DictReader(csvfile)
for row in dictReader:
hostname = row['hostname'] + '.txt'
with open('C:\Users\\robertph\host_vars\\' + hostname,'w') as fh:
fh.write(template.render(row))
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
File ".\csv2dict_test2.py", line 18, in <module>
fh.write(template.render(row))
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013' in position 2042: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
我想我理解的错误是我在¦ 某个地方有一个unicode字符,但我不知道在哪里,虽然我已经搜索了模板和dictReader.我已阅读文档(http://jinja.pocoo.org/docs/dev/api/#unicode),但不了解如何缓解此错误.
这可能是新手的臭味,但......
我正在研究我的第一个Django项目,我正在阅读很多使用virtualenv被认为是最佳实践.我理解virtualenv沙箱所有我的python依赖项,但我只是不知道如果我在沙盒VM中工作是否有必要吗?我正在开发Vagrant,并且不会将这些VM用于其他任何事情,我将部署到只有这个Django项目的VM服务器上.是否有可能在未来进一步的Django应用程序在这个项目中需要不同的依赖关系,所以需要在不同virtualenv的?(不确定它是否像那个tbh一样工作?)
我只是表现出我的经验不足和短视吗?
我在我的模型中创建并随后更改了一个 DecimalField。现在,当我尝试运行时,出现python manage.py migrate以下错误:
decimal.InvalidOperation: quantize result has too many digits for current context
Run Code Online (Sandbox Code Playgroud)
在阅读了 SO 上的各种相关问题后,我尝试增加 max_digits,这无济于事。 我已经手动删除了我的 postgreSQL 数据库中的模型,希望能够在我迁移模型时重新创建它,但我仍然遇到同样的错误,并且无法迁移模型并在数据库中重新创建模型。
这是有问题的模型:
class Version(models.Model):
version_number = models.DecimalField(default=1.0, max_digits=3,
decimal_places=2)
Run Code Online (Sandbox Code Playgroud)
我能做些什么来解决这个问题?
编辑 当我更改 DecimalField 时,我更改了max_digits
我有一个带有 prop 的组件,我想将其限制为一系列字符串,因此我使用联合类型,如下所示:
type HeadingProps = {
level?: 'h1' | 'h2' | 'h3' | 'h4'| 'h5' | 'h6'
}
const Heading: React.FC<HeadingProps> = ({children, level = 'h2'}) => {
return <Box as={level} />
}
Run Code Online (Sandbox Code Playgroud)
当我这样使用时效果很好..
<Heading level="h1">Hello, world!</Heading>
Run Code Online (Sandbox Code Playgroud)
但如果我尝试将它与数组一起使用,则会收到错误:
{['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].map((level: string) => (
<Heading level={level}>{level}</Heading>
)}
Run Code Online (Sandbox Code Playgroud)
类型“string”不可分配给类型“h1”| “h2”| “h3”| “h4”| “h5”| “h6”| 未定义'.ts(2322)
如何获得 prop 的类型,以便只有这些字符串有效,但在像上面这样的数组中使用组件时能够传递有效的字符串值?
编辑 这就是当前类型的样子:
export const HeadingLevels = {
h1: `h1`,
h2: `h2`,
h3: `h3`,
h4: `h4`,
h5: `h5`,
h6: `h6`, …Run Code Online (Sandbox Code Playgroud) python ×7
django ×3
csv ×1
elixir ×1
git ×1
go ×1
gopath ×1
jenkins ×1
jinja2 ×1
json ×1
mocking ×1
pdf ×1
postgresql ×1
python-mock ×1
reactjs ×1
regex ×1
typescript ×1
unicode ×1
unit-testing ×1
vagrant ×1
virtualenv ×1
xhtml2pdf ×1