Re: [Distutils] How to eliminate on part of a package?

2018-04-27 Thread Skip Montanaro
> If you're lazy, you could distribute the server package to everyone
> and just make sure that if someone tries to import it on python 2 then
> they get a useful error.
>

Thanks, yes, that's a good suggestion. I suspect they'd get a SyntaxError
today, but as another currently active thread suggested, that probably
would be considered more confusing than useful.

Skip

>
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] How to eliminate on part of a package?

2018-04-26 Thread Nathaniel Smith
If you're lazy, you could distribute the server package to everyone
and just make sure that if someone tries to import it on python 2 then
they get a useful error.

On Thu, Apr 26, 2018 at 9:17 AM, Skip Montanaro
 wrote:
> Yeah, splitting client and server packages is on my to-do list. Was
> just hoping to keep Python2 users from shooting themselves in the foot
> with a server subpackage which wouldn't work.
>
> S
>
> On Thu, Apr 26, 2018 at 10:59 AM, Chris Barker  wrote:
>> frankly, I'd give up n find_packages -- it's not that magic, it's just a
>> convenience function so you don't need to hand-specify them.
>>
>> But in this case, you're doing something weird, so I"d just be explicit.
>>
>> Though what I'd probably really do is make the client and server completely
>> separate packages. After all, you say your users only want the client side
>> anyway.
>>
>> and if the server depends on the client (which I"d hope it doesn't!) then
>> you can simply make it a dependency.
>>
>> -CHB
>>
>>
>>
>>
>> On Wed, Apr 25, 2018 at 1:28 PM, Skip Montanaro 
>> wrote:
>>>
>>> >
>>> > If by "top/server tree" you mean that there are more subpackages under
>>> > top.server (not just a server.py file as your diagram shows), then you 
>>> > need
>>> > to filter out all of those subpackages as well, e.g.:
>>> >
>>> > packages = setuptools.find_packages()
>>> > if sys.version_info.major < 3:
>>> > packages = [
>>> > pkg for pkg in packages
>>> > if pkg != "top.server" and not
>>> > pkg.startswith("top.server.")
>>> > ]
>>>
>>> Thanks, yes, there is another subpackage within top/server, but I
>>> eliminated it as well. I was simplifying for the email. The raw
>>> find_packages() output looks like this:
>>>
>>> ['tests', 'top', 'tests.python', 'top.client', 'top.server',
>>> 'top.server.db']
>>>
>>> I was excising the last two elements from the returned list, so the
>>> argument of the packages keyword looked like this:
>>>
>>> ['tests', 'top', 'tests.python', 'top.client']
>>>
>>> Does the presence of 'top' in the list imply everything under it will
>>> be copied (I do want 'top', as that's the top level package, not just
>>> a directory in my repo.)
>>>
>>> I'll keep messing with it.
>>>
>>> Skip
>>> ___
>>> Distutils-SIG maillist  -  Distutils-SIG@python.org
>>> https://mail.python.org/mailman/listinfo/distutils-sig
>>
>>
>>
>>
>> --
>>
>> Christopher Barker, Ph.D.
>> Oceanographer
>>
>> Emergency Response Division
>> NOAA/NOS/OR(206) 526-6959   voice
>> 7600 Sand Point Way NE   (206) 526-6329   fax
>> Seattle, WA  98115   (206) 526-6317   main reception
>>
>> chris.bar...@noaa.gov
> ___
> Distutils-SIG maillist  -  Distutils-SIG@python.org
> https://mail.python.org/mailman/listinfo/distutils-sig



-- 
Nathaniel J. Smith -- https://vorpus.org
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] How to eliminate on part of a package?

2018-04-26 Thread Skip Montanaro
Yeah, splitting client and server packages is on my to-do list. Was
just hoping to keep Python2 users from shooting themselves in the foot
with a server subpackage which wouldn't work.

S

On Thu, Apr 26, 2018 at 10:59 AM, Chris Barker  wrote:
> frankly, I'd give up n find_packages -- it's not that magic, it's just a
> convenience function so you don't need to hand-specify them.
>
> But in this case, you're doing something weird, so I"d just be explicit.
>
> Though what I'd probably really do is make the client and server completely
> separate packages. After all, you say your users only want the client side
> anyway.
>
> and if the server depends on the client (which I"d hope it doesn't!) then
> you can simply make it a dependency.
>
> -CHB
>
>
>
>
> On Wed, Apr 25, 2018 at 1:28 PM, Skip Montanaro 
> wrote:
>>
>> >
>> > If by "top/server tree" you mean that there are more subpackages under
>> > top.server (not just a server.py file as your diagram shows), then you need
>> > to filter out all of those subpackages as well, e.g.:
>> >
>> > packages = setuptools.find_packages()
>> > if sys.version_info.major < 3:
>> > packages = [
>> > pkg for pkg in packages
>> > if pkg != "top.server" and not
>> > pkg.startswith("top.server.")
>> > ]
>>
>> Thanks, yes, there is another subpackage within top/server, but I
>> eliminated it as well. I was simplifying for the email. The raw
>> find_packages() output looks like this:
>>
>> ['tests', 'top', 'tests.python', 'top.client', 'top.server',
>> 'top.server.db']
>>
>> I was excising the last two elements from the returned list, so the
>> argument of the packages keyword looked like this:
>>
>> ['tests', 'top', 'tests.python', 'top.client']
>>
>> Does the presence of 'top' in the list imply everything under it will
>> be copied (I do want 'top', as that's the top level package, not just
>> a directory in my repo.)
>>
>> I'll keep messing with it.
>>
>> Skip
>> ___
>> Distutils-SIG maillist  -  Distutils-SIG@python.org
>> https://mail.python.org/mailman/listinfo/distutils-sig
>
>
>
>
> --
>
> Christopher Barker, Ph.D.
> Oceanographer
>
> Emergency Response Division
> NOAA/NOS/OR(206) 526-6959   voice
> 7600 Sand Point Way NE   (206) 526-6329   fax
> Seattle, WA  98115   (206) 526-6317   main reception
>
> chris.bar...@noaa.gov
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] How to eliminate on part of a package?

2018-04-26 Thread Chris Barker
frankly, I'd give up n find_packages -- it's not that magic, it's just a
convenience function so you don't need to hand-specify them.

But in this case, you're doing something weird, so I"d just be explicit.

Though what I'd probably really do is make the client and server completely
separate packages. After all, you say your users only want the client side
anyway.

and if the server depends on the client (which I"d hope it doesn't!) then
you can simply make it a dependency.

-CHB




On Wed, Apr 25, 2018 at 1:28 PM, Skip Montanaro 
wrote:

> >
> > If by "top/server tree" you mean that there are more subpackages under
> top.server (not just a server.py file as your diagram shows), then you need
> to filter out all of those subpackages as well, e.g.:
> >
> > packages = setuptools.find_packages()
> > if sys.version_info.major < 3:
> > packages = [
> > pkg for pkg in packages
> > if pkg != "top.server" and not
> pkg.startswith("top.server.")
> > ]
>
> Thanks, yes, there is another subpackage within top/server, but I
> eliminated it as well. I was simplifying for the email. The raw
> find_packages() output looks like this:
>
> ['tests', 'top', 'tests.python', 'top.client', 'top.server',
> 'top.server.db']
>
> I was excising the last two elements from the returned list, so the
> argument of the packages keyword looked like this:
>
> ['tests', 'top', 'tests.python', 'top.client']
>
> Does the presence of 'top' in the list imply everything under it will
> be copied (I do want 'top', as that's the top level package, not just
> a directory in my repo.)
>
> I'll keep messing with it.
>
> Skip
> ___
> Distutils-SIG maillist  -  Distutils-SIG@python.org
> https://mail.python.org/mailman/listinfo/distutils-sig
>



-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR(206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115   (206) 526-6317   main reception

chris.bar...@noaa.gov
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] How to eliminate on part of a package?

2018-04-25 Thread John Thorvald Wodder II
On 2018 Apr 25, at 16:02, Skip Montanaro  wrote:
> I recently ported a package to Python 3. The overall structure is
> pretty straightforward:
> 
> top/
>client/
>module.py
>server/
>server.py
> 
> There's more to it, but that's enough for demonstration. I am
> retaining Python 2.7 compatibility on the client side, but have
> dispensed with that business on the server. (I run the server, not my
> users.) Accordingly, I would like the py27 version of the package to
> not have a subpackage named "server".
> 
> I thought it would be easy peasy to just trim the server bits from
> setuptools.find_packages() in my setup.py file (I have
> 36.5.0.post20170921 of setuptools), something like this:
> 
> packages = setuptools.find_packages()
> if sys.version_info.major < 3:
>packages.remove("top.server")
> 
> In either case, I pass the resulting list as the packages argument of
> setuptools.setup(...).
> 
> That doesn't work though. I get some sort of mish-mash where part of
> the top/server tree is copied, part not. I eventually get an error
> from a cp command, something about ".../server is not a directory".

If by "top/server tree" you mean that there are more subpackages under 
top.server (not just a server.py file as your diagram shows), then you need to 
filter out all of those subpackages as well, e.g.:

packages = setuptools.find_packages()
if sys.version_info.major < 3:
packages = [
pkg for pkg in packages
if pkg != "top.server" and not pkg.startswith("top.server.")
]
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig