Haskell有一个Data.Map模块,其中包括一个!函数.
fromList [(5,'a'), (3,'b')] ! 1 Error: element not in the map
fromList [(5,'a'), (3,'b')] ! 5 == 'a'
Run Code Online (Sandbox Code Playgroud)
虽然我可以将Data.Map模块中的其他函数导入到我的代码中......
import Data.Map(Map, keys, fromList)
Run Code Online (Sandbox Code Playgroud)
......以下不起作用......
import Data.Map(Map, keys, fromList, !)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
parse error on input `!'
Run Code Online (Sandbox Code Playgroud)
导入项目的正确语法是!什么?
我有一个SQLAlchemy Session对象,想知道它是否脏.我想(比喻)要问的确切问题Session是:"如果此时我发出a commit()或a rollback(),对数据库的影响是否相同?".
理由是:我想询问用户是否想要确认更改.但如果没有变化,我不想问任何问题.当然,我可以监视自己执行的所有操作,Session并决定是否有修改,但由于我的程序结构,这需要一些相关的更改.如果SQLAlchemy已经提供了这个机会,我很乐意利用它.
谢谢大家.
为了减少使用selenium的页面访问次数,我想从一个before :all钩子调用visit方法,并在单个页面加载时运行我的所有示例.但是,当我指定before :allvs时before :each,浏览器会打开,但永远不会访问该URL.以下是一个简化的人为例子......
describe 'foobar', :js => true do
before :all do
Capybara.default_wait_time = 10
obj = Factory(:obj)
visit obj_path(obj)
end
it 'should have foo' do
page.should have_content('foo')
end
it 'should have bar' do
page.should have_content('bar')
end
end
Run Code Online (Sandbox Code Playgroud)
当我设置它时before :each,它可以工作,但页面加载两次.这是Capybara的限制吗?
我有一个简单的批处理文件,我从DOS命令行运行,用于构建一个发布ClickOnce项目的小型C#应用程序.一行是这样的:
msbuild MyApp.csproj /t:publish /property:PublishDir="deploy/"
Run Code Online (Sandbox Code Playgroud)
这当前发布了应用程序,但它使用我在Visual Studio的"发布"选项卡中设置的发布版本.我希望能够在命令行设置发布版本,具体来说,我想使用项目的汇编版本.就像是:
msbuild MyApp.csproj /t:publish /property:PublishDir="deploy/" /property:PublishVersion="$(Proj.AssemblyVersion)"
Run Code Online (Sandbox Code Playgroud)
我希望不用创建自定义任务,因为这只是一个临时解决方案,我将在稍后用更合适的构建系统替换它.
或者,我已经看过使用带有标志的Mage命令行工具更新已发布的清单版本-Update,但我不知道如何从项目或构建的程序集中检索程序集版本号而不使用PowerShell或某些需要的程序下载.如果我可以使用Visual Studio附带的东西,那也可以.
所以我有这个代码
static void Main(string[] args)
{
Console.Write("First Number = ");
int first = int.Parse(Console.ReadLine());
Console.Write("Second Number = ");
int second = int.Parse(Console.ReadLine());
Console.WriteLine("Greatest of two: " + GetMax(first, second));
}
public static int GetMax(int first, int second)
{
if (first > second)
{
return first;
}
else if (first < second)
{
return second;
}
else
{
// ??????
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法让GetMax返回一个带有错误消息的字符串,或者当first == second时返回一些东西.
我想使用Alembic将数据库的列类型从字符串更改为整数.如果我使用纯SQL,它实现了目标:
alter table statistic_ticket alter column tags type bigint using tags::bigint;
Run Code Online (Sandbox Code Playgroud)
但是当我使用Alembic时:
import sqlalchemy as sa
def upgrade():
op.alter_column('statistic_ticket', 'tags', nullable = True, existing_type=sa.String(length=255), type_=sa.Integer, existing_nullable=True)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
HINT: Please use USING clause for carrying out the conversion
Run Code Online (Sandbox Code Playgroud)
SQLAlchemy生成的SQL语句是:
ALTER TABLE statistic_ticket ALTER COLUMN tags TYPE INTEGER' {}
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我怎么做alembic或SQLAlchemy中的SQL op.execute(SQL)吗?
我有以下代码:
query = """
SELECT Coalesce((SELECT sp.param_value
FROM sites_params sp
WHERE sp.param_name = 'ci'
AND sp.site_id = s.id
ORDER BY sp.id DESC
LIMIT 1), -1) AS ci
FROM sites s
WHERE s.deleted = 0
AND s.id = 10
"""
site = db_session.execute(query)
# print site
# <sqlalchemy.engine.result.ResultProxy object at 0x033E63D0>
site = db_session.execute(query).fetchone()
print site # (u'375')
print list(site) # [u'375']
Run Code Online (Sandbox Code Playgroud)
为什么SQLAlchemy会为此查询返回元组而不是dicts?我想使用以下样式来访问查询的结果:
print site.ci
# u'375'
Run Code Online (Sandbox Code Playgroud) 我很想知道为什么我们应该在烧瓶那里使用werkzeug.任何特定的理由考虑werkzeug过烧瓶.
与sqlalchemy在金字塔上工作:
newjob_obj=Job(name=name,job_propery=job_property,sizeX=sizeX,
sizeY=sizeY,quantity=quantity,timeline=timeline,
description=description,remarks=remarks,
client_id=client_id,created_by=created_by,status=status
)
new_job=session.add(newjob_obj)
print('Return newJob value %s\n' % new_job)
Run Code Online (Sandbox Code Playgroud)
这里new_job正在打印None.添加会话功能返回对象与否.请帮忙.
我有一个web服务,它的目的是执行一个特定的应用程序,但应用程序没有任何类型的流媒体,但控制台,所以我必须找到一种方法将我的请求重定向到控制台(STDOUT),然后得到结果从输出.
但我不知道怎么能在ruby on rails 1.9上做到这一点.
问候