小编Tre*_*ent的帖子

如何动态添加完成单词到VS2013语法扩展(MEF)

我很可能不理解问题空间,但我很难搞清楚MEF(编辑器分类器项目).

我已经创建(将MSDN中的演练指南https://msdn.microsoft.com/en-us/library/ee197665.aspx拼凑在一起),这是Informix存储过程语言的语法高清.

我遇到的一个主要问题是 - 我希望能够找到关键字"DEFINE"的所有实例,并将其后面的单词直接填充到我所拥有的语句完成扩展中(目前它是从定义的单词列表中填充的).

与C#的本机支持非常相似 - 当您定义变量时,它在自动完成下拉列表中可用.

我摆脱了课堂上的硬编码(从演练中),我的完成单词定义如下:

List<Completion> completions = new List<Completion>();

CompletionTags completionTags = new CompletionTags();

foreach (string completionTag in completionTags.completionTags)
{
    completions.Add(new Completion(completionTag));
};
Run Code Online (Sandbox Code Playgroud)

我的CompletionTags类非常简单:

class CompletionTags {public List completionTags;

public CompletionTags()
{
    this.completionTags = new List<string> {
        // SQL keywords
        "COUNT",
        "FROM",
        "HAVING",
    };
}
Run Code Online (Sandbox Code Playgroud)

我知道我需要做什么.我以某种方式需要在缓冲区更改时劫持缓冲区并找到所有出现的'DEFINE([a-zA-Z0-9 _] {1,})'并将\ 1添加到completionTags列表中.

我不知道怎么做.此时在任何方向(或任何方向)的任何指针都将非常感激.

善待 - 我们在某个阶段都已经超出了我们的深度(我已经用C#编程了3天)...

c# mef autocomplete visual-studio-sdk visual-studio-2013

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

预取列序列SQLAlchemy

我的模型非常复杂,我正在尝试从现有存储过程中获取逻辑并将它们转换为SQLAlchemy(出于可移植性的原因).

我对未提交的数据感到困惑.

我有user表:1d,名字我有status表:id,名字我有user_statuses表:id,user_id,status_id,from_dt,to_dt

现在,我需要在单个事务中填充所有这些表,否则会失败.问题:

user = User(name = 'Test')
status = Status(name = 'Active')
db.session.add(user)
db.session.add(status)

# Oooopa! This is where it fails
user_session = UserStatuses(user_id=user.id, status_id=status.id, datetime.utcnow(), datetime(9999,01,01,00,00,00))
# both user.id and status.id = None as it's uncommited!
Run Code Online (Sandbox Code Playgroud)

本质上,我需要能够访问没有显式SQL的表序列.为什么?为了便携性.目前我使用PGSQL并且可以这样做:

class User(Base):
    ....
    @staticmethod
    def prefetch_id():
        db.session.execute("SELECT NEXTVAL('user_id_seq');").scalar()
Run Code Online (Sandbox Code Playgroud)

将引擎更改为MySQL&BANG!申请破了.

关于如何做到这一点的任何想法?请记住,这可能是一个非常高的交易应用程序,一次被成千上万的用户访问

python mysql sqlalchemy postgresql-9.2

5
推荐指数
2
解决办法
3830
查看次数

SQLAlchemy-onupdate不覆盖当前值

所有,

我正在研究SQLAlchemy的Audit mixin,但不确定如何执行此操作。我的课看起来像这样:

class AuditColumns(object):

    created_dt = Column(DateTime,
                        default=datetime.utcnow(),
                        nullable=False)

    created_by = Column(String(64),
                        default=current_user,
                        nullable=False)

    updated_dt = Column(DateTime,
                        default=datetime.utcnow(),
                        nullable=False,
                        onupdate=datetime.utcnow())
    updated_by = Column(String(64),
                        default=current_user,
                        nullable=False,
                        onupdate=current_user)
Run Code Online (Sandbox Code Playgroud)

更新的更新很好,因为我只需要在表级别记录最新更新;任何重要的审核将保存在单独的表格中,其中详细说明了更新/删除等。

我的问题是;我不希望created_dt / by列被更新。我知道,在我的代码中,我可以在更新对象时简单地忽略它们;但另一位编码员可以;因此,我真的想确保在每次更新之前,它都会覆盖自身的值,或者如果有人尝试更改它,则会引发错误(首选后者)。

我的SQLAlchemy技能仍在开发中,请问事件是否可以解决?还是可以通过重写一些通用的声明性功能(例如save()或before_save()或任何可能存在的东西)来完成?

我会一直在寻找答案-但最好能找到解决方案(我不希望获得代码)。

python sqlalchemy

4
推荐指数
2
解决办法
5814
查看次数

所有模型的SQLAlchemy事件after_create

我正在开发一个项目,需要对每个创建的模型进行通用定制.我迄今为止完成大部分工作的方式是通过模型继承.这是我的代码块,可以让您更好地了解:

app.core.dba.mixins:

class AuditExtension(MapperExtension):
    """
    AuditExtension enforces the audit column values, and ensures any interaction with
    SQLAlchemy cannot override the values
    """

    def before_insert(self, mapper, connection, instance):
        instance.created_dt = datetime.utcnow()
        instance.created_by = audit_session_user()

        instance.updated_dt = datetime.utcnow()
        instance.updated_by = audit_session_user()

    def before_update(self, mapper, connection, instance):
        # Never update the created columns
        instance.created_dt = instance.created_dt
        instance.created_by = instance.created_by

        instance.updated_dt = datetime.utcnow()
        instance.updated_by = audit_session_user()


class AuditColumns(object):

    """ Generate the column schema for simple table level auditing. """
    created_dt = Column(DateTime,
                        default=datetime.utcnow(),
                        nullable=False) …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

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

git 子模块“您需要首先解决当前索引”,但没有合并冲突

我有一个奇怪的问题,我无法解决。詹金斯正在从存储库进行构建。

它检查应用程序的当前提交(这是正确的),然后初始化子模块(也是正确的,并找到正确的提交)。

但当它尝试这样做时git submodule update --init --recursive repo,它会失败:

app/views/license/edit.html:需要合并

问题是没有冲突,并且当前提交的源中的文件完全没问题......

我只是不知道从这里该去哪里。

 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url git@bitbucket.org:TEAM/api-backend.git # timeout=10
Fetching upstream changes from git@bitbucket.org:TEAM/api-backend.git
 > git --version # timeout=10
using GIT_SSH to set credentials
 > git fetch --tags --progress git@bitbucket.org:TEAM/api-backend.git +refs/heads/*:refs/remotes/origin/*
 > git rev-parse refs/remotes/origin/dev^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/refs/heads/dev^{commit} # timeout=10
Checking out Revision 99ab7742966fd82f21044e7bf5f405eaf3bd085b (refs/remotes/origin/dev)
 > git config core.sparsecheckout # timeout=10
 > git …
Run Code Online (Sandbox Code Playgroud)

git

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