do
> easier, more secure things.
> _______
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.py
.
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/python-ideas@python.org/message
On 23/12/23 9:12 am, DL Neil via Python-ideas wrote:
On 12/23/23 02:09, Eric V. Smith via Python-ideas wrote:
You're better off discussing this on discuss.python.org as this
mailing list is basically dead.
It can't be dead - you're here!
It's just resting!
--
Greg
On 12/23/23 09:51, Chris Angelico wrote:
On Sat, 23 Dec 2023 at 07:13, DL Neil via Python-ideas
wrote:
On 12/23/23 02:09, Eric V. Smith via Python-ideas wrote:
On 12/21/2023 4:38 PM, Steve Jorgensen wrote:
I am finding that it would be useful to be able to define a dataclass
On Sat, 23 Dec 2023 at 07:13, DL Neil via Python-ideas
wrote:
>
> On 12/23/23 02:09, Eric V. Smith via Python-ideas wrote:
> > On 12/21/2023 4:38 PM, Steve Jorgensen wrote:
> >> I am finding that it would be useful to be able to define a dataclass that
> >> is an
thon
Let's also state, and discard, the idea that there is no need (from
Python's perspective) for an ABC at all, creating a super-(data)class,
and inheriting from there 'works' - but doesn't help comprehension.
--
Regards =dn
_______
Python-ideas
On 12/23/23 02:09, Eric V. Smith via Python-ideas wrote:
On 12/21/2023 4:38 PM, Steve Jorgensen wrote:
I am finding that it would be useful to be able to define a dataclass that is
an abstract base class and define some of its field as abstract.
As I am typing this, I realize that I could
dead.
And when you do post over there, please provide an example. It's not
clear what would happen in the generated code if abstract=True.
Eric
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le
of
the standard API in any case though? I'm thinking that a field would be made
abstract by passing `abstract=True` as an argument to `dataclasses.field()`.
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python
variable will only have the name 'person_name',
but not user_name, as the field objects need to know their names on the
model (and their names on the views/forms).
-- Original Message --
From: "Rene Nejsum"
To: python-ideas@python.org
Sent: Saturday, 4 Nov, 23 At 08:13
Subjec
it can name the row in the database the same.
On startup Django runs through the Model class searching for instances of Field
and gets the name that way
_______
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-id
it's the result of invalid
> user input, but that's the fault of the user, not the programmer.
>
> --
> Greg
> ___________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@pyt
of invalid
user input, but that's the fault of the user, not the programmer.
--
Greg
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/python-ideas@python.org
ry must have come
from Perth, as it is nothing but black swans.
ChrisA
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.
I
> believe Guido has specifically advised against such a hierarchy. I'm
> against this change.
>
> Steve
> _______
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/m
> On the cost side, there are so many cases where a more finely divided
> Exception hierarchy would help novices quite a bit but experts very
> little that this case (easy to learn) would open the floodgates. I
> believe Guido has specifically advised against such a hierarchy. I'm
> a
quite a bit but experts very
little that this case (easy to learn) would open the floodgates. I
believe Guido has specifically advised against such a hierarchy. I'm
against this change.
Steve
_______
Python-ideas mailing list -- python-ideas@python.org
To unsubscr
andate that you use it everywhere,
just to achieve what's already happening?
ChrisA
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/
I think what the OP wants is to have re.match either return a match or
raise an exception.
_______
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/pytho
tly well.
If it's NOT a bug when the regex doesn't match, you have the standard
conditional form available. I'm not seeing a problem here.
ChrisA
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https:/
g string was.
I propose to skip that entire exercise and go straight to:
re.NoMatchError: 'foobar' does not match pattern '^[0-9]+'
That would be so much nicer both for beginners and experienced developers.
What do you think about that?
Thanks,
Ram.
_______
Pyt
s what we should do with that match", and when that
> "absolutely sure" fails, the proper way to deal with that is by raising an
> exception.
>
Oh, you mean like AttributeError?
ChrisA
_______
Python-ideas mailing list -- python-ide
e proper way to deal with that is by raising an
exception.
___________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail
inters to enforce a rule that the `require` argument must always be
> specified. (Example.)
>
What about an if with the match inside it?
if m := re.match(...):
...
That's one of the motivating examples behind the walrus after all.
ChrisA
_______
Pytho
uld either return a match or
>> raise an exception with an actually useful message?
>>
>>
>> Thanks,
>> Ram.
>> _______
>> Python-ideas mailing list -- python-ideas@python.org
>> To unsubscribe send an email to python-ideas-le...@python.org
>>
eed. What do you think about a flag `require` such that
> `re.match(pattern, string, require=True)` would either return a match or
> raise an exception with an actually useful message?
>
>
> Thanks,
> Ram.
> _______
> Python-ideas ma
ation that fails while the code
> expects it to succeed. What do you think about a flag `require` such that
> `re.match(pattern, string, require=True)` would either return a match or
> raise an exception with an actually useful message?
>
>
> Thanks,
> Ram.
> __
ceed. What do you think about a flag `require` such that
`re.match(pattern, string, require=True)` would either return a match or
raise an exception with an actually useful message?
Thanks,
Ram.
_______
Python-ideas mailing list -- python-ideas@
On 19/10/2023 20.43, Dom Grigonis wrote:
On 19 Oct 2023, at 10:27, dn via Python-ideas wrote:
On 19/10/2023 19.50, Dom Grigonis wrote:
Thank you,
Good information, thank you. Was not aware of __set_name__.
IIRC that was one of the updates/improvements. Thanks to whomsoever
e class-attribute and not call the descriptor), so instance
> can never be None and owner is type(instance).
>
> Le jeu. 19 oct. 2023 à 09:45, Dom Grigonis <mailto:dom.grigo...@gmail.com>> a écrit :
>
> > On 19 Oct 2023, at 10:27, dn via Python-ideas > <mailto:python-ideas
and not call the descriptor), so
instance can never be None and owner is type(instance).
Le jeu. 19 oct. 2023 à 09:45, Dom Grigonis a
écrit :
>
> > On 19 Oct 2023, at 10:27, dn via Python-ideas
> wrote:
> >
> > On 19/10/2023 19.50, Dom Grigonis wrote:
> >>
> On 19 Oct 2023, at 10:27, dn via Python-ideas wrote:
>
> On 19/10/2023 19.50, Dom Grigonis wrote:
>> Thank you,
>> Good information, thank you. Was not aware of __set_name__.
>
> IIRC that was one of the updates/improvements. Thanks to whomsoever...!
>
> T
in our application code...
(YMMV!)
--
Regards,
=dn
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived
Thank you,
Good information, thank you. Was not aware of __set_name__.
DG
> On 19 Oct 2023, at 09:28, dn via Python-ideas wrote:
>
> On 19/10/2023 18.29, Dom Grigonis wrote:
>> def __get__(self, instance, owner):
>> def __set__(self, instance, value):
>> Is there
#descriptors
--
Regards,
=dn
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org
Hi all,
Quick question.
def __get__(self, instance, owner):
def __set__(self, instance, value):
Is there a reason why `__set__` does not have owner in it’s arguments while
`__get__` does?
Regards,
DG
___
Python-ideas mailing list -- python-ideas
egards,
DG
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/
))
___
Python-ideas mailing list --python-ideas@python.org
To unsubscribe send an email topython-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived
athttps://mail.python.org/archives/list/python-ideas@python.org
else:
> break
Works for me. I suspect you can construct situations where it would
be a lot uglier. But I'm not a fan of the walrus in the first place,
so I'm not going to take this any further.
Steve
_______
Python-ideas mailing
e") as f:
>lines = f.readlines()
>for (line in lines):
>if check(line):
>process(line)
>else:
>break
>
> but that's not possible with an infinite iterable, undesireable for
> most non-file streams, etc.
>
> Re "
infinite iterable, undesireable for
most non-file streams, etc.
Re "simple examples", see why I used the "if check()" stuff? If I
wasn't going to talk about infinite iterables and pausing external
streams, that would just be (potentially wrong!) complexity that
doesn't help
it's always the case that
> there are objective reasons why it's a good thing.
>
> All additions have a 0 * infinity cost: a negligible cost of learning
> (for one user) times *all* the users.
Ok, thanks.
DG
___
Python-ideas mailing list --
0 * infinity cost: a negligible cost of learning
(for one user) times *all* the users.
Other projects feel differently about it, but Python tends to be quite
conservative about additions.
Steve
___
Python-ideas mailing list -- python-ideas@python.org
T
unity likes it, then could be a good addition.
Regards,
DG
P.S. Deferred evaluation will be able to handle this one too_______
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail
.
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/python-ideas@python.org/message
Is there a reason why this is not allowed?
return (self.mode := self.mode_valid(mode))
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python
.com>> wrote:
> >
> > On Mon, 25 Sept 2023 at 07:05, Dom Grigonis > <mailto:dom.grigo...@gmail.com>> wrote:
> >> What I meant is that functions in __builtins__ are low level, with
> >> functionality which is hidden from the user.
> >>
>
wrote:
> Samuel Freilich via Python-ideas writes:
>
> > This might all be too much thought about edge cases that don't
> > matter, but given the *_ns() functions in the time module (PEP
> > 564), I'm curious why datetime doesn't have a constructor that
> > take
is a poll:
>
> https://take.supersurvey.com/QCVZKTDY0
>
> It will not take more than few seconds. Appreciate your time.
Polls are utterly useless.
ChrisA
___________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email
com/QCVZKTDY0>
It will not take more than few seconds. Appreciate your time.
Regards,
DG
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/
Samuel Freilich via Python-ideas writes:
> This might all be too much thought about edge cases that don't
> matter, but given the *_ns() functions in the time module (PEP
> 564), I'm curious why datetime doesn't have a constructor that
> takes an integer timestamp with the fu
t; >>
> >
> > What does that even mean?
> >
> > ChrisA
> > ___
> > Python-ideas mailing list -- python-ideas@python.org
> > To unsubscribe send an email to python-ideas-le...@python.org
> > https://mail.python.org/mailman3/lists/python-ideas
notice of it.
ChrisA
_______
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/python-ide
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/python-ideas@python.org/message
in __builtins__ are low level, with
>> functionality which is hidden from the user.
>>
>
> What does that even mean?
>
> ChrisA
> ___________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send a
On Mon, 25 Sept 2023 at 07:05, Dom Grigonis wrote:
> What I meant is that functions in __builtins__ are low level, with
> functionality which is hidden from the user.
>
What does that even mean?
ChrisA
_______
Python-ideas mailing list -- pyt
egular expressions. Consider
>>>> this possible notation:
>>>>
>>>>f'There are {count} expression{pluralize(count)} denoted by {=0}.'
>>>>
>>>> Otherwise it isn't great, but it's definitely concise. In the
>>>> simplest cas
{=0}.'
>>>
>>> Otherwise it isn't great, but it's definitely concise. In the
>>> simplest case you could omit the position:
>>>
>>>f'{=} is {count} at this point in the program.'
>>>
>>> Hmmm...
>>>
>>> and viola
>
>>>>> and violates DRY -- it doesn't solve the problem of the first
>>>>> draft typo.
>>>
>>>> And how is “postfix =“ different?
>>>
>>> You *can't* use different identifiers for the name and value in
>>> "postfix
>
>>
>> You *can't* use different identifiers for the name and value in
>> "postfix =": the same text is used twice, once as a string and one as
>> an identifier.
>>
>> I see what you mean, but this property is arguably intrinsic to what it
>
intrinsic to what it is.
> And is part of f-strings vs explicit formatting property too:
> variable = 1
> print(f'{variable=} and b={variable}')
> # VS
> msg = 'variable={v} and b={v}'
> print(msg.format(v=variable))
> Especially, where msg can be pre-stored and reused. Then maybe
get the impression that you think everyone else
> understands your idea.
Apologies. Noted.___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.or
rmatting property too:
>
> variable = 1print(f'{variable=} and b={variable}')# VS
> msg = 'variable={v} and b={v}'print(msg.format(v=variable))
>
> Especially, where msg can be pre-stored and reused. Then maybe not making
> it f-string only is a better idea. So that one can do
ng? Because that's, uhh,
kinda not the point of str.format().
And if that isn't what you mean, what is it? Your posts are often
distinctly unclear. I get the impression that you think everyone else
understands your idea.
ChrisA
_______
Python-ideas mailing l
}'
print(msg.format(v=variable))
Especially, where msg can be pre-stored and reused. Then maybe not making it
f-string only is a better idea. So that one can do:
msg = '{a!i}={a} and b={a}'
print(msg.format(a=variable))
_______
Python-ideas mailing list
gt; What could be more concise?
>
> > and
> > violates DRY -- it doesn't solve the problem of the first draft typo.
> And how is “postfix =“ different?
>
> > I don't see it as elegant the way "postfix =" is.
> Agreed.
>
> DG
________
> And how is “postfix =“ different?
You *can't* use different identifiers for the name and value in
"postfix =": the same text is used twice, once as a string and one as
an identifier.
_______
Python-ideas mailing list -- python-ideas@python.org
To unsubsc
> But it's far from concise
What could be more concise?
> and
> violates DRY -- it doesn't solve the problem of the first draft typo.
And how is “postfix =“ different?
> I don't see it as elegant the way "postfix =" is.
Agreed.
DG
______
y, "prefix =" is a reasonable solution to the problem --
assuming you consider it a problem. But it's far from concise and
violates DRY -- it doesn't solve the problem of the first draft typo.
I don't see it as elegant the way "postfix =" is.
_______
oks like" what it produces.
>
> The proposed prefix '=' flag is much less attractive to me on all
> counts above, except that it's quite mnemonic.
>
> Steve
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an emai
active to me on all
counts above, except that it's quite mnemonic.
Steve
_______
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Me
m proposing (Except the unneeded evaluation part)
So if it is already there, why not have it done well given there is little to none overall cost to it? I think cost implementing such things in Editor is much greater.Regards,DG
_______Python-ideas mailing list --
`` support even without further interpret support.
>>>>> What do you mean by f’{name!id}’ ? I don’t understand your point here.
>>>>>
>>>>> Are you proposing f’{name!id}’ syntax for it? My whole point is to do
>>>>> this in f-strings.
>>&
>>> DG
>>> —Evaluation of deferred evaluation can be deferred, but not indefinitely —
>>>
>>>
>>>> Em sáb., 23 de set. de 2023 às 09:51, Dom Grigonis >>> <mailto:dom.grigo...@gmail.com>> escreveu:
>>>>> This is
ethod to do it a bit more robustly?
>>>
>>> Given python being flexible multipurpose interpreted language, I am sure
>>> more use cases would surface.
>>>
>>>> Couldn’t we just subclass typing.LiteralString to typing.Id or something
>>>>
.rstrip(f'{a}')
> # or a bit better
> f'{a=}'.split('=')[0]
> # = exactly what I am proposing (Except the unneeded evaluation part)
> So if it is already there, why not have it done well given there is little to
> none overall cost to it? I think cost implementing such things in Editor
I think cost implementing such things in Editor
> is much greater.
>
> Regards,
> DG
>
_______
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.pyt
Regards,
DG_______
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/python-ideas@p
This is the only use case I can think of.
It could be supported by the typing module by subtyping LiteralString and let
the editor tools do the rest.
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas
I accidentaly made the windows11 client the app for responding these, can someone help to undo it, thanks. Send from Windows11 client (sorry IT SUCKS)
___________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@p
ourage it in production code.
Agree, this use case is not for production code.
Correct me if I am wrong, but I think `eval` in general should not be
encouraged in production code.
___
Python-ideas mailing list -- python-ideas@python.org
To unsubs
ase. I don't think we should
encourage it in production code.
_______
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message a
> this automatically, you're doing it wrong. ;-)
>>
>> I don't see any use case that f-string '=' doesn't satisfy well enough
>> to make a new builtin pseudo-function[1] justifiable.
>>
>>> E.g. would it be faster than `Class.__name__`?
>>
>> You're
dy exists. So this is incorrect.
>>> Or:
>>> while a < b(x := c) - 42:
>>> # ???
>
> I actually think this is the better parsing of the three: a SyntaxError.
>
>
> Celelibi
> ___
> Python-ideas mailing list -- python-ideas@python.
> while a < b(x := c) - 42:
>># ???
I actually think this is the better parsing of the three: a SyntaxError.
Celelibi
_______
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@pytho
faults__ = (2, 1, 0)
> >>> f()
> (2, 1, 0)
>
> I am suspicious of your example in your original post because it does not
> explicitly consider the possibilities already provided by Python for changing
> default values on the fly.
>
> I hope this helps.
>
> Jo
cause it does not
explicitly consider the possibilities already provided by Python for
changing default values on the fly.
I hope this helps.
Jonathan
_______
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas
ow it
> makes bad code harder to write.
>
> Please note that my use of 'good' and 'bad' are subject to the provisos
> mentioned earlier.
>
> I hope this helps.
>
> Jonathan
>
>
>
>
>
_______
Pyt
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/python-ideas
ou provide of weaknesses in Python's present behaviour.
>
> I hope this helps.
>
> Jonathan
_______
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/
response to my request more highly if it shows that you
have a clear understanding of Python's present behaviour. I'd also welcome
any example you provide of weaknesses in Python's present behaviour.
I hope this helps.
Jonathan
___
Python-ideas mailing
ngs expressing code. If it's about speed,
> there's got to be a better way.
>
>
>
> Footnotes:
> [1] In C#, 'nameof' is first looked up as a function reference, and
> if found that is called. Otherwise the compiler macro is used.
>
_______
Python-ide
.g. would it be faster than `Class.__name__`?
You're working with strings expressing code. If it's about speed,
there's got to be a better way.
Footnotes:
[1] In C#, 'nameof' is first looked up as a function reference, and
if found that is called. Otherwise the compiler macro is used.
parenthesized strings properly and all you need
> to do is modify tools to recognize that syntax. It's even backwards
> compatible, visually striking, and doesn't prevent compile-time string
> folding.
>
> --- Bruce
>
> ___________
>
parenthesized strings properly and all you
need to do is modify tools to recognize that syntax. It's even backwards
compatible, visually striking, and doesn't prevent compile-time string
folding.
--- Bruce
>
>
___
Python-ideas mailing list -- python
d parsing it for
variables - in fact, it's the exact same thing, just done a second
time.
I have done exactly this sort of parsing, using the Python ast module.
It's not difficult.
ChrisA
___________
Python-ideas mailing list -- python-ideas@python.org
To unsubs
ation as a Good Thing.
3. Willigness to implement and maintain.
--
Jeff Allen
_______
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.py
p (if it were project-local, not a stdlib object) would cause the string
> to change in most existing IDEs.
> Attempts to guess the name from the expression at runtime are futile and a
> red herring. Trying to describe the desired semantics that way leads to
> nonsensical ideas, I agree.
ads
to nonsensical ideas, I agree.
I'm not convinced this feature is widely useful. Here I'm just trying to
focus us on the *viable* semantics MRAB identified.
--
Jeff Allen
___
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe s
1 - 100 of 30773 matches
Mail list logo