Re: [pylons-discuss] Using pyramid + pyramid_simpleform + formencode + sqlalchemy ?

2018-04-08 Thread André Prado
Yep that did the trick. I believe I was trying to pass a dict instead of an
object last night when I hit the error. Oh well...

Thanks a bunch!

On 8 April 2018 at 15:29, Michael Merickel  wrote:

> Validation libraries tend to have a way to pass some user-defined state
> down through the validators. It looks like in formencode you can do this as
> well via the state argument [1]. You would likely want to pass a dict down
> containing either the request or the dbsession and then your validators can
> access that attribute of the state.
>
> [1] http://www.formencode.org/en/latest/Validator.html#state
>
> On Sun, Apr 8, 2018 at 8:35 AM, André Prado 
> wrote:
>
>> Hi folks,
>>
>> I want to make a schema + a form connecting to SQLAlchemy and be able to
>> identify if an username is unique and emails are unique. I am using these
>> as a base:
>>
>> https://docs.pylonsproject.org/projects/pyramid-simpleform/en/latest/
>> https://github.com/thruflo/pyramid_simpleauth/blob/master/
>> src/pyramid_simpleauth/schema.py#L212
>> https://github.com/thruflo/pyramid_simpleauth/blob/master/
>> src/pyramid_simpleauth/model.py#L290
>>
>> For example,
>>
>> class Signup(formencode.Schema):
>> """Form fields to render and validate for signup."""
>>
>> allow_extra_fields=True
>> filter_extra_fields=True
>> username = UniqueUsername(not_empty=True)
>> email = UniqueEmail(resolve_domain=False, not_empty=True)
>> password = Password(not_empty=True)
>> confirm = Password(not_empty=True)
>> chained_validators = [
>> validators.FieldsMatch(
>> 'password',
>> 'confirm'
>> )
>> ]
>>
>>
>> In the example from simpleauth he has a function called get_existing_user
>> that UniqueUsername is calling in the _validate_python method.
>>
>> However the get_existing_user is accessing a global SQLAlchemy session
>> which is always exposed: https://github.com/thruflo/pyr
>> amid_basemodel/blob/master/src/pyramid_basemodel/__init__.py#L54
>>
>> I wanted to use what the current Pyramid documentation suggests, which
>> is, having a request.dbsession that you propagate through your code instead
>> of a global variable.
>>
>> For example: https://github.com/Pylons/pyramid-cookiecutter-alchemy/blob/
>> latest/%7B%7Bcookiecutter.repo_name%7D%7D/%7B%
>> 7Bcookiecutter.repo_name%7D%7D/models/__init__.py#L52
>>
>>
>> Is there any way to make pyramid_simpleform / formencode receive the
>> request.dbsession?
>>
>> I couldn't figure out from the docs, tried some parameters like state and
>> extra but no juice. In the end I did something like:
>>
>> from pyramid.threadlocal import get_current_request
>> request=get_current_request().dbsession
>>
>> Which the Pyramid docs tells not to do and I don't want to.
>>
>> Thanks!
>>
>>
>>
>> --
>> Atenciosamente/Regards
>> André Castelan Prado
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "pylons-discuss" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to pylons-discuss+unsubscr...@googlegroups.com.
>> To post to this group, send email to pylons-discuss@googlegroups.com.
>> To view this discussion on the web visit https://groups.google.com/d/ms
>> gid/pylons-discuss/CAG%3D2wZeJ3SbCmFbfhdOvPE1aJ9f%3DPYrF8YAx
>> %2BN5A7fWd%3DFhsMg%40mail.gmail.com
>> 
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "pylons-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to pylons-discuss+unsubscr...@googlegroups.com.
> To post to this group, send email to pylons-discuss@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/pylons-discuss/CAKdhhwG5geVvmRbW_2kq%3D55EEKoNZVLDqnV_
> 5SUUabM8SS8pbw%40mail.gmail.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Atenciosamente/Regards
André Castelan Prado

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pylons-discuss+unsubscr...@googlegroups.com.
To post to this group, send email to pylons-discuss@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pylons-discuss/CAG%3D2wZed5bsq2CtjHTNAK-XYtVhNbau4JQF%3DP6oO-vGOUm5S9A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


Re: [pylons-discuss] Using pyramid + pyramid_simpleform + formencode + sqlalchemy ?

2018-04-08 Thread Michael Merickel
Validation libraries tend to have a way to pass some user-defined state
down through the validators. It looks like in formencode you can do this as
well via the state argument [1]. You would likely want to pass a dict down
containing either the request or the dbsession and then your validators can
access that attribute of the state.

[1] http://www.formencode.org/en/latest/Validator.html#state

On Sun, Apr 8, 2018 at 8:35 AM, André Prado  wrote:

> Hi folks,
>
> I want to make a schema + a form connecting to SQLAlchemy and be able to
> identify if an username is unique and emails are unique. I am using these
> as a base:
>
> https://docs.pylonsproject.org/projects/pyramid-simpleform/en/latest/
> https://github.com/thruflo/pyramid_simpleauth/blob/
> master/src/pyramid_simpleauth/schema.py#L212
> https://github.com/thruflo/pyramid_simpleauth/blob/
> master/src/pyramid_simpleauth/model.py#L290
>
> For example,
>
> class Signup(formencode.Schema):
> """Form fields to render and validate for signup."""
>
> allow_extra_fields=True
> filter_extra_fields=True
> username = UniqueUsername(not_empty=True)
> email = UniqueEmail(resolve_domain=False, not_empty=True)
> password = Password(not_empty=True)
> confirm = Password(not_empty=True)
> chained_validators = [
> validators.FieldsMatch(
> 'password',
> 'confirm'
> )
> ]
>
>
> In the example from simpleauth he has a function called get_existing_user
> that UniqueUsername is calling in the _validate_python method.
>
> However the get_existing_user is accessing a global SQLAlchemy session
> which is always exposed: https://github.com/thruflo/
> pyramid_basemodel/blob/master/src/pyramid_basemodel/__init__.py#L54
>
> I wanted to use what the current Pyramid documentation suggests, which is,
> having a request.dbsession that you propagate through your code instead of
> a global variable.
>
> For example: https://github.com/Pylons/pyramid-cookiecutter-alchemy/
> blob/latest/%7B%7Bcookiecutter.repo_name%7D%7D/%7B%7Bcookiecutter.repo_
> name%7D%7D/models/__init__.py#L52
>
>
> Is there any way to make pyramid_simpleform / formencode receive the
> request.dbsession?
>
> I couldn't figure out from the docs, tried some parameters like state and
> extra but no juice. In the end I did something like:
>
> from pyramid.threadlocal import get_current_request
> request=get_current_request().dbsession
>
> Which the Pyramid docs tells not to do and I don't want to.
>
> Thanks!
>
>
>
> --
> Atenciosamente/Regards
> André Castelan Prado
>
> --
> You received this message because you are subscribed to the Google Groups
> "pylons-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to pylons-discuss+unsubscr...@googlegroups.com.
> To post to this group, send email to pylons-discuss@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/pylons-discuss/CAG%3D2wZeJ3SbCmFbfhdOvPE1aJ9f%
> 3DPYrF8YAx%2BN5A7fWd%3DFhsMg%40mail.gmail.com
> 
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pylons-discuss+unsubscr...@googlegroups.com.
To post to this group, send email to pylons-discuss@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pylons-discuss/CAKdhhwG5geVvmRbW_2kq%3D55EEKoNZVLDqnV_5SUUabM8SS8pbw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


[pylons-discuss] Using pyramid + pyramid_simpleform + formencode + sqlalchemy ?

2018-04-08 Thread André Prado
Hi folks,

I want to make a schema + a form connecting to SQLAlchemy and be able to
identify if an username is unique and emails are unique. I am using these
as a base:

https://docs.pylonsproject.org/projects/pyramid-simpleform/en/latest/
https://github.com/thruflo/pyramid_simpleauth/blob/master/src/pyramid_simpleauth/schema.py#L212
https://github.com/thruflo/pyramid_simpleauth/blob/master/src/pyramid_simpleauth/model.py#L290

For example,

class Signup(formencode.Schema):
"""Form fields to render and validate for signup."""

allow_extra_fields=True
filter_extra_fields=True
username = UniqueUsername(not_empty=True)
email = UniqueEmail(resolve_domain=False, not_empty=True)
password = Password(not_empty=True)
confirm = Password(not_empty=True)
chained_validators = [
validators.FieldsMatch(
'password',
'confirm'
)
]


In the example from simpleauth he has a function called get_existing_user
that UniqueUsername is calling in the _validate_python method.

However the get_existing_user is accessing a global SQLAlchemy session
which is always exposed:
https://github.com/thruflo/pyramid_basemodel/blob/master/src/pyramid_basemodel/__init__.py#L54

I wanted to use what the current Pyramid documentation suggests, which is,
having a request.dbsession that you propagate through your code instead of
a global variable.

For example:
https://github.com/Pylons/pyramid-cookiecutter-alchemy/blob/latest/%7B%7Bcookiecutter.repo_name%7D%7D/%7B%7Bcookiecutter.repo_name%7D%7D/models/__init__.py#L52


Is there any way to make pyramid_simpleform / formencode receive the
request.dbsession?

I couldn't figure out from the docs, tried some parameters like state and
extra but no juice. In the end I did something like:

from pyramid.threadlocal import get_current_request
request=get_current_request().dbsession

Which the Pyramid docs tells not to do and I don't want to.

Thanks!



-- 
Atenciosamente/Regards
André Castelan Prado

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to pylons-discuss+unsubscr...@googlegroups.com.
To post to this group, send email to pylons-discuss@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pylons-discuss/CAG%3D2wZeJ3SbCmFbfhdOvPE1aJ9f%3DPYrF8YAx%2BN5A7fWd%3DFhsMg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.