[issue35714] Document that the null character '\0' terminates a struct format spec

2019-01-10 Thread Steven D'Aprano
Steven D'Aprano added the comment: I'm not sure whether having NULLs terminate a struct format string is a feature or a bug. Given that nearly every other string in Python treat NULLs as ordinary characters, I'm inclined to say this is a bug. Or at least an unnecessary r

[issue35712] Make NotImplemented unusable in boolean context

2019-01-10 Thread Steven D'Aprano
Steven D'Aprano added the comment: > the canonical __ne__ delegation to __eq__ for any class should be implemented > as something like I disagree that your code snippet is the canonical way to write __ne__. I'd write it like this: def __ne__(self, other):

[issue35725] Using for...in.. generator-iterator

2019-01-11 Thread Steven D'Aprano
Steven D'Aprano added the comment: This is not a bug, it is standard behaviour for all iterators, not just generators. For loops work by calling next() on the iterator object, if you call next() on the same object inside the loop, that has the effect of advancing the for loop. Yo

[issue35698] [statistics] Division by 2 in statistics.median

2019-01-14 Thread Steven D'Aprano
Steven D'Aprano added the comment: I agree that for numeric data, it isn't worth changing the behaviour of median to avoid the division in the case of two equal middle values. Even if we did accept this feature request, it is not going to eliminate the change in type in all cir

[issue35756] Using `return value` in a generator function skips the returned value on for-loop iteration

2019-01-16 Thread Steven D'Aprano
Steven D'Aprano added the comment: You say: > The PEP reads as if returning a value via StopIteration was meant to signal > that the generator was finished and that StopIteration.value was the final > value. To me, the PEP is clear that `return expr` is equivalent to `raise

[issue35756] Using `return value` in a generator function skips the returned value on for-loop iteration

2019-01-16 Thread Steven D'Aprano
Steven D'Aprano added the comment: > I understood the PEP to include `return expr` in the iteration values > as per the first bullet of the proposal. > > > Any values that the iterator yields are passed directly to the caller. > > This bullet doesn't have a

[issue35777] mismatched eval() and ast.literal_eval() behavior with unicode_literals

2019-01-18 Thread Steven D'Aprano
Steven D'Aprano added the comment: Python 2.7 has long passed feature freeze, and this would be new behaviour appearing in a bug-fix release, which we don't normally do. I'm going to close this as Rejected, but if you think you can make a good case for why this enhancement

[issue35775] Add a general selection function to statistics

2019-01-18 Thread Steven D'Aprano
Steven D'Aprano added the comment: I'm very interested in adding quartiles and general quantiles/fractiles, but I'm not so sure that this select(data, index) function would be useful. Can you explain how you would use this? -- ___

[issue35775] Add a general selection function to statistics

2019-01-18 Thread Steven D'Aprano
Steven D'Aprano added the comment: On Fri, Jan 18, 2019 at 11:13:41PM +, Rémi Lapeyre wrote: > Wouldn't be the 5-th percentile be select(data, round(len(data)/20)? Oh if only it were that simple! Using the method you suggest, the 50th percentile is not the same as the medi

[issue35779] Print friendly version message in REPL

2019-01-18 Thread Steven D'Aprano
Steven D'Aprano added the comment: The version message doesn't look "too complicated" to me. It looks no more complicated as that which Python has always displayed, going back to Python 1.5 (the oldest version I still have access to). Python 1.5.2 (#1, Aug 27 2012,

[issue35748] urlparse library detecting wrong hostname leads to open redirect vulnerability

2019-01-18 Thread Steven D'Aprano
Steven D'Aprano added the comment: I believe that Python's behaviour here is correct. You are supplying a netloc which includes a username "www.google.com\" with no password. That might be what you intend to do, or it might be malicious data. That depends on context, and

[issue35756] Using `return value` in a generator function skips the returned value on for-loop iteration

2019-01-18 Thread Steven D'Aprano
Steven D'Aprano added the comment: On Fri, Jan 18, 2019 at 12:31:51AM +, bryan.koch wrote: > Thank you both for the clarifications. I agree these's no bug in > `yield from` however is there a way to reference the return value when > a generator with a return is inv

[issue20479] Efficiently support weight/frequency mappings in the statistics module

2019-01-18 Thread Steven D'Aprano
Steven D'Aprano added the comment: > Is this proposal still relevant? Yes. As Raymond says, deciding on a good API is the hard part. Its relatively simple to change a poor implementation for a better one, but backwards compatibility means that changing the API is very difficult.

[issue35748] urlparse library detecting wrong hostname leads to open redirect vulnerability

2019-01-19 Thread Steven D'Aprano
Steven D'Aprano added the comment: > The “urllib.parse” module generally follows RFC 3986, which does not > allow a literal backslash in the “userinfo” part: And yet the parse() function seems to allow arbitrary unescaped characters. This is from 3.8.0a0: py> from urlli

[issue35775] Add a general selection function to statistics

2019-01-19 Thread Steven D'Aprano
Steven D'Aprano added the comment: Rémi. I've read over your patch and have some comments: (1) You call sorted() to produce a list, but then instead of retrieving the item using ``data[i-1]`` you use ``itertools.islice``. That seems unnecessary to me. Do you have a reason for usin

[issue35756] Using `return value` in a generator function skips the returned value on for-loop iteration

2019-01-21 Thread Steven D'Aprano
Steven D'Aprano added the comment: > steven your generator example is exactly what I wanted to do; looks > like I'm upgrading to Python 3.8 for the new assignment syntax. Sorry to have mislead you, but I don't think it will do what I thought. After giving it some more

[issue35756] Using `return value` in a generator function skips the returned value on for-loop iteration

2019-01-21 Thread Steven D'Aprano
Steven D'Aprano added the comment: > I'm off to write an ugly `next()` wrapper then. Wouldn't it be simpler to re-design the generators to yield the final result instead of returning it? To process the final item differently from the rest, you just need something like thi

[issue20479] Efficiently support weight/frequency mappings in the statistics module

2019-01-21 Thread Steven D'Aprano
Steven D'Aprano added the comment: Here is some further information on weights in statistics in general, and SAS and Stata specifically: https://blogs.sas.com/content/iml/2017/10/02/weight-variables-in-statistics-sas.html Quote: use the FREQ statement to specify integer frequencie

[issue35779] Print friendly version message in REPL

2019-01-22 Thread Steven D'Aprano
Steven D'Aprano added the comment: > We only print simplified message in official binary release, any > Linux/private builds still using the current message. We know enough > information about official binary release. Who is "we" in this sentence? Are you saying th

[issue35830] building multiple (binary) packages from a single project

2019-01-25 Thread Steven D'Aprano
Steven D'Aprano added the comment: This is a bug tracker for reporting bugs and enhancement requests, not a help desk. Do you have a *specific* feature request or a bug to report? If not, you should ask this on a community forum such as Stackoverflow, Reddit's r/learnpython,

[issue35834] get_type_hints exposes an instance of ForwardRef (internal class) in its result, with `from __future__ import annotations` enabled

2019-01-26 Thread Steven D'Aprano
Steven D'Aprano added the comment: > Since Undef is not defined, I should get an exception when calling > get_type_hints One of the motives of PEP-563 is to make it easier to use forward references. I'm not sure, but it seems to me that given that, we should not get an

[issue35834] get_type_hints exposes an instance of ForwardRef (internal class) in its result, with `from __future__ import annotations` enabled

2019-01-26 Thread Steven D'Aprano
Steven D'Aprano added the comment: Wait, I just noticed that PEP563 says: "Note: if an annotation was a string literal already, it will still be wrapped in a string." https://www.python.org/dev/peps/pep-0563/#id5 In 3.8.0a I get this: py> from __future__ import annotatio

[issue35836] ZeroDivisionError class should have a __name__ attr

2019-01-27 Thread Steven D'Aprano
Steven D'Aprano added the comment: You are not looking at the class, you are looking at an instance: py> exc = ZeroDivisionError('divide by zero') py> type(exc).__name__ 'ZeroDivisionError' py> exc.__name__ Traceback (most recent call last): F

[issue35431] Add a function for computing binomial coefficients to the math module

2019-01-28 Thread Steven D'Aprano
Steven D'Aprano added the comment: Sorry for the late reply, I missed Tim's comment when it first came through. > Please resist pointless feature creep. The original report was about > comb(n, k) for integer n and k with 0 <= k <= n and that's all. > Ever

[issue35431] Add a function for computing binomial coefficients to the math module

2019-01-28 Thread Steven D'Aprano
Steven D'Aprano added the comment: > This involved a few changes, which seem to reflect the consensus here: > - raise ValueError if k>n ; > - rename the function to math.combinations. I see at least four people (myself, Raymond, Mark and Tim) giving comb as first choice,

[issue35857] Stacktrace shows lines from updated file on disk, not code actually running

2019-01-30 Thread Steven D'Aprano
Steven D'Aprano added the comment: > It should instead show the lines from the file as it was when the code was > executed. How is Python supposed to do that without making a copy of every module and script it runs just in case it gets modified? (That's not a rhetorical qu

[issue35857] Stacktrace shows lines from updated file on disk, not code actually running

2019-01-30 Thread Steven D'Aprano
Steven D'Aprano added the comment: There may be something we can do to improve the error reporting and make it less perplexing: https://mail.python.org/pipermail/python-ideas/2019-January/055041.html -- ___ Python tracker &

[issue35857] Stacktrace shows lines from updated file on disk, not code actually running

2019-01-30 Thread Steven D'Aprano
Steven D'Aprano added the comment: > For information - all taken from docs and Lib/*.py I'm sorry Jonathon, I don't see how they are relevant or interesting to the topic in hand other than "they're used to print stack traces". Okay, they're used

[issue35880] math.sin has no backward error; this isn't documented

2019-02-01 Thread Steven D'Aprano
Steven D'Aprano added the comment: > sin(1<<500) is correctly computed as 0.42925739234242827 py> math.sin(1<<500) 0.9996230490249484 Wolfram Alpha says it is 0.429257392342428277735329299112473759079115476327819897... https://www.wolframalpha.com/input/?i=si

[issue22228] Adapt bash readline operate-and-get-next function

2019-02-06 Thread Steven D'Aprano
Steven D'Aprano added the comment: If the licencing issue is resolved, can we reconsider this for 3.8? -- versions: +Python 3.8 -Python 3.6 ___ Python tracker <https://bugs.python.org/is

[issue35904] Add statistics.fmean(seq)

2019-02-07 Thread Steven D'Aprano
Steven D'Aprano added the comment: In the PEP, I did say that I was making no attempt to compete with numpy for speed, and that correctness was more important than speed. That doesn't mean I don't care about speed. Nor do I necessarily care about absolute precision when gi

[issue35904] Add statistics.fmean(seq)

2019-02-07 Thread Steven D'Aprano
Steven D'Aprano added the comment: >def fmean(seq: Sequence[float]) -> float: >return math.fsum(seq) / len(seq) Is it intentional that this doesn't support iterators? -- ___ Python tracker <https://bugs

[issue35904] Add statistics.fmean(seq)

2019-02-07 Thread Steven D'Aprano
Steven D'Aprano added the comment: > On my current 3.8 build, this code given an approx 500x speed-up On my system, I only get a 30x speed-up using your timeit code. Using ints instead of random floats, I only get a 9x speed-up. This just goes to show how sensitive these timing res

[issue35938] crash of METADATA file cannot be fixed by reinstall of python

2019-02-08 Thread Steven D'Aprano
Steven D'Aprano added the comment: That's not a crash. You are trying to install a package using pip, pip sees that it is missing the METADATA file and reports a problem. That is working correctly, not a crash. There is no way for us to know how the metadata file got deleted.

[issue35904] Add statistics.fmean(seq)

2019-02-08 Thread Steven D'Aprano
Steven D'Aprano added the comment: Oh, I seem to have accidentally reverted the change of title. Sorry, that was definitely not intended and I don't know how it happened. But now that it has, I'm not going to change it until we have a dec

[issue35937] Add instancemethod to types.py

2019-02-08 Thread Steven D'Aprano
Steven D'Aprano added the comment: I presume you aren't referring to this: from types import MethodType > There really isn't anything else to say about it How about starting with why you want this and what you will do with it? According to this post on Sta

[issue21625] help()'s more-mode is frustrating

2019-02-09 Thread Steven D'Aprano
Change by Steven D'Aprano : -- nosy: +steven.daprano versions: +Python 3.8 -Python 2.7, Python 3.5 ___ Python tracker <https://bugs.python.org/is

[issue35904] Add statistics.fmean(seq)

2019-02-10 Thread Steven D'Aprano
Steven D'Aprano added the comment: > Would you like me to submit a PR with docs and tests? Yes please! I'm happy with the name fmean. -- ___ Python tracker <https://bugs.pytho

[issue35892] Fix awkwardness of statistics.mode() for multimodal datasets

2019-02-10 Thread Steven D'Aprano
Steven D'Aprano added the comment: Thanks Raymond for the interesting use-case. The original design of mode() was support only the basic form taught in secondary schools, namely a single unique mode for categorical data or discrete numerical data. I think it is time to consider a r

[issue35980] Py3 BIF random.choices() is O(N**2) but I've written O(N) code for the same task

2019-02-12 Thread Steven D'Aprano
Steven D'Aprano added the comment: What's "BIF" mean? You use that term multiple times but I have never heard it before. I'm sorry, I don't understand your code (and don't have time to study it in detail to decipher it). It would help if you factored out

[issue35986] print() documentation typo?

2019-02-13 Thread Steven D'Aprano
Steven D'Aprano added the comment: Which documentation are you referring to? The docstring says: print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) which is clearly a space. The docs here: https://docs.python.org/3/library/functions.html#print s

[issue36000] __debug__ is a keyword but not a keyword

2019-02-15 Thread Steven D'Aprano
Steven D'Aprano added the comment: I'm not sure that __debug__ is a proper keyword. Unlike None, if you monkey-patch builtins, you can modify it: py> builtins.__dict__['__debug__'] = 'Surprise!' py> __debug__ 'Surprise!' py> builtins.__dict

[issue36026] Different error message when sys.settrace is used (regressions)

2019-02-18 Thread Steven D'Aprano
Steven D'Aprano added the comment: Do I correctly understand the reported problem here? set.add(0) correctly raises TypeError in each case, but: (1) the exception message changes between versions; (2) and also changes depending on whether or not sys.trace is active. I don't

[issue36028] Integer Division discrepancy with float

2019-02-18 Thread Steven D'Aprano
Steven D'Aprano added the comment: Changing the title from referring to "decimal" to "float", since this has nothing to do with the decimal module or Decimal type. Like Raymond and Tim, I too cannot reproduce the claimed difference in behaviour between Python 2.7 a

[issue36027] Consider adding modular multiplicative inverse to the math module

2019-02-18 Thread Steven D'Aprano
Change by Steven D'Aprano : -- nosy: +steven.daprano ___ Python tracker <https://bugs.python.org/issue36027> ___ ___ Python-bugs-list mailing list Unsubscr

[issue36018] Add a Normal Distribution class to the statistics module

2019-02-18 Thread Steven D'Aprano
Steven D'Aprano added the comment: I like this idea! Should the "examples" method be re-named "samples"? That's the word used in the docstring, and it matches the from_samples method. -- ___ Python tracker <h

[issue35904] Add statistics.fmean(seq)

2019-02-18 Thread Steven D'Aprano
Steven D'Aprano added the comment: PR looks good to me, thanks Raymond. Just at the moment I'm having problems with my internet connection leading to technical difficulties with Github. Hopefully I can resolve this soon. -- ___ Pyth

[issue36018] Add a Normal Distribution class to the statistics module

2019-02-22 Thread Steven D'Aprano
Steven D'Aprano added the comment: Thanks Raymond. Apologies for commenting here instead of at the PR. While I've been fighting with more intermittedly broken than usual internet access, Github has stopped supporting my browser. I can't upgrade the browser without upgradin

[issue29724] Itertools docs propose a harmful “speedup” without any explanation

2017-03-05 Thread Steven D'Aprano
Changes by Steven D'Aprano : -- nosy: +steven.daprano ___ Python tracker <http://bugs.python.org/issue29724> ___ ___ Python-bugs-list mailing list Unsubscr

[issue29724] Itertools docs propose a harmful “speedup” without any explanation

2017-03-05 Thread Steven D'Aprano
Steven D'Aprano added the comment: On my computer, running Python 3.5 and continuing to do other tasks while the tests are running, I get a reproducible 5% speedup by using the "default values" trick. Here's my code: import operator def dotproduct(vec1, vec2): return

[issue29756] Improve documentation for list methods that compare items by equality

2017-03-08 Thread Steven D'Aprano
Steven D'Aprano added the comment: Further to Barry's explanation, you see the same result with any values which compare equal: py> from decimal import Decimal as D py> [1, 1.0, D(1), True, 1+0j].count(D(1)) 5 This is standard behaviour for methods `count`, `remove`, and

[issue29756] Improve documentation for list methods that compare items by equality

2017-03-08 Thread Steven D'Aprano
Steven D'Aprano added the comment: To be clear, I'm referring to the docs in the tutorial: https://docs.python.org/3.7/tutorial/datastructures.html and the docstrings as well as the library reference: https://docs.python.org/3.7/library/stdtypes.html#sequence-types-list-tuple-

[issue29790] Optional use of /dev/random on linux

2017-03-10 Thread Steven D'Aprano
Changes by Steven D'Aprano : -- nosy: +haypo, ncoghlan, steven.daprano ___ Python tracker <http://bugs.python.org/issue29790> ___ ___ Python-bugs-list m

[issue29794] Incorrect error message on invalid __class__ assignments

2017-03-11 Thread Steven D'Aprano
Steven D'Aprano added the comment: Your example works because random is a module: py> from types import ModuleType py> import random py> type(random) is ModuleType True Since random is an instance of ModuleType, your class M is a subclass of ModuleType, and assigning to rando

[issue29756] Improve documentation for list methods that compare items by equality

2017-03-12 Thread Steven D'Aprano
Steven D'Aprano added the comment: I'm afraid I don't know what SUT means. But 3 == 3.0 is the correct and expected behaviour. If you need to check that two values are both the same type and the same value, you have to validate the type and value separately. Changing the beh

[issue25478] Consider adding a normalize() method to collections.Counter()

2017-03-15 Thread Steven D'Aprano
Steven D'Aprano added the comment: It seems to me that the basic Counter class should be left as-is, and if there are specialized methods used for statistics (such as normalize) it should go into a subclass in the statistics module. The statistics module already uses Counter internal

[issue29848] Cannot use Decorators of the same class that requires an instance of itself to change variables in that class.

2017-03-18 Thread Steven D'Aprano
Steven D'Aprano added the comment: Its not clear what you are asking for here. Do you think the current behaviour is a bug? Are you asking for a new feature? What do you want? When the decorator is called, "self" doesn't exist, so of course @self.decorator *must* fail. W

[issue29857] Provide `sys._raw_argv` for host application's command line arguments

2017-03-21 Thread Steven D'Aprano
Steven D'Aprano added the comment: Why is the name flagged as a private implementation detail? I.e. a single leading underscore. I'd be reluctant to rely on this in production code, given how strong the _private convention is. Suggest just `sys.raw_args` instead. -

[issue30020] Make attrgetter use namedtuple

2017-04-07 Thread Steven D'Aprano
Steven D'Aprano added the comment: Before writing a patch that may be rejected, can you explain in detail what change you propose? Example(s) will be good. For example: py> from operator import attrgetter py> f = attrgetter('keys') py> f({}) I don't see a tup

[issue30071] Duck-typing inspect.isfunction()

2017-04-14 Thread Steven D'Aprano
Steven D'Aprano added the comment: Duck typing is not something that "Python" does, it is a style of programming done by Python programmers. You wouldn't expect isinstance() to try to "duck type", and likewise the inspect module should be precise about what

[issue30084] starred tuple expression vs list display and function call

2017-04-16 Thread Steven D'Aprano
Steven D'Aprano added the comment: > list expression pass starred expression, the other hand > tuple expression cannot pass starred expression. You are misinterpreting what you are seeing. ( ) is not a tuple expression (except for the special case of empty brackets, which makes an

[issue30085] Discourage operator.__dunder__ functions

2017-04-16 Thread Steven D'Aprano
New submission from Steven D'Aprano: As discussed on the Python-Ideas mailing list, it is time to discourage the use of operator.__dunder__ functions. Not to remove them or deprecate them, just change the documentation to make it clear that the dunderless versions are preferred. Guido

[issue30135] default value of argument seems to be overwritten

2017-04-22 Thread Steven D'Aprano
Steven D'Aprano added the comment: In the future please don't post binary files containing source code, especially something as non-standard as 7z. That just makes it difficult for people to review the code. Either paste your code snippet directly into the bug report, or attach i

[issue30137] Equivalent syntax regarding List returns List objects with non-similar list elements.

2017-04-22 Thread Steven D'Aprano
Steven D'Aprano added the comment: The behaviour is as documented and is not a bug. When you have a three-argument extended slice, the starting and stopping values depend on whether the stride (step) is positive or negative. Although that's buried in a footnote to the tab

[issue30153] lru_cache should support invalidations

2017-04-24 Thread Steven D'Aprano
Steven D'Aprano added the comment: Perhaps the existing ``cache_clear`` method could take optional arguments? def cache_clear(self, *args, **kw): if not (args or kw): # clear the entire cache else: # clear just the cache entry for *args, **kw -- compo

[issue30296] Remove unnecessary tuples, lists, sets, and dicts from Lib

2017-05-07 Thread Steven D'Aprano
Steven D'Aprano added the comment: Is this unnecessary code churn? That's not a rhetorical question. Fixing code that isn't broken is not always a good idea. ``func()`` is not always identical to ``func()``, there are situations where there is a significant performance differe

[issue23702] docs.python.org/3/howto/descriptor.html still refers to "unbound methods"

2017-05-07 Thread Steven D'Aprano
Steven D'Aprano added the comment: Be careful with the documentation patch. Although unbound method as an object type is gone, unbound method as a concept is not. Conceptually, something like ``MyClass.spam`` is an unbound method: it is a method of the MyClass type, but bound to no ins

[issue30311] random.shuffle pointlessly shuffles dicts

2017-05-08 Thread Steven D'Aprano
New submission from Steven D'Aprano: According to the documentation, random.shuffle() should accept a sequence. But it also accepts dicts, in which case it does nothing, expensively: py> x = dict.fromkeys(range(10**6)) py> random.shuffle(x) py> str(x)[:55] + "...}" &#x

[issue30352] The 'in' syntax should work with any object that implements __iter__

2017-05-12 Thread Steven D'Aprano
Steven D'Aprano added the comment: This is not a small change, and will need careful thought. The problem is that in Python 3 (and in Python 2 for new-style classes), dunder methods are only called by the interpreter if they are defined on the class itself, not on the instance. That

[issue30352] The 'in' syntax should work with any object that implements __iter__

2017-05-12 Thread Steven D'Aprano
Steven D'Aprano added the comment: A further thought... looking at your example code, I believe that part of the __getattr__ is redundant. def __getattr__(self, item): try: return self.__getattribute__(item) except AttributeError: return s

[issue30408] [defaultdict] default_factory should accept a "key" default parameter (which can be passed my __missing__)

2017-05-19 Thread Steven D'Aprano
Steven D'Aprano added the comment: I think this should be closed. For backwards compatibility, the defaultdict default_factory function must remain as it is. There is lots of code that uses something like `int` or `list` as the factory, and if the missing key was to be passed, the code

[issue9584] fnmatch, glob: Allow curly brace expansion

2017-05-20 Thread Steven D'Aprano
Changes by Steven D'Aprano : -- nosy: +steven.daprano ___ Python tracker <http://bugs.python.org/issue9584> ___ ___ Python-bugs-list mailing list Unsubscr

[issue30413] Add fnmatch.filter_false function

2017-05-20 Thread Steven D'Aprano
New submission from Steven D'Aprano: There has been some discussion on Python-Ideas about adding fnmatch.filter_false to complement filter, for when you want to ignore matching files rather than non-matching ones. https://mail.python.org/pipermail/python-ideas/2017-May/045694.html I

[issue30413] Add fnmatch.filter_false function

2017-05-20 Thread Steven D'Aprano
Steven D'Aprano added the comment: I'm happy for you to change the name to filterfalse. -- ___ Python tracker <http://bugs.python.org/issue30413> ___ ___

[issue30444] Add ability to change "-- more --" text in pager module

2017-05-23 Thread Steven D'Aprano
Steven D'Aprano added the comment: Can you please explain why you need to change the --more-- text in the pager? I haven't been able to find any way to change the "--more--" prompt in the shell commands `less` and `more`, and remember that the pager will under some circ

[issue30503] It should be possible to use a module name with the same name as a package name

2017-05-29 Thread Steven D'Aprano
Steven D'Aprano added the comment: This is just module shadowing in action. If you have two or more modules, or packages, in the module search path, the first one found will block access to the others. > this is a bad design in my opinion. *shrug* It is what it is. Often it is inco

[issue30608] argparse calculates string widths incorrectly

2017-06-09 Thread Steven D'Aprano
Steven D'Aprano added the comment: I don't really understand your example code. What result did you expect? The output shown in Github seems correct to me: optional arguments: -h, --helpshow this help message and exit --language1 XX La

[issue30608] argparse calculates string widths incorrectly

2017-06-09 Thread Steven D'Aprano
Steven D'Aprano added the comment: By the way, perhaps a simpler demonstration which is more likely to render correctly on most people's systems would be to use Latin-1 combining characters: py> s1 = 'àéîõü' py> s2 = unicodedata.normalize('NFD', s1) # decom

[issue36018] Add a Normal Distribution class to the statistics module

2019-02-23 Thread Steven D'Aprano
Steven D'Aprano added the comment: Karthikeyan: thanks for the hint about Github. Raymond: thanks for the diff. Some comments: Why use object.__setattr__(self, 'mu', mu) instead of self.mu = mu in the __init__ method? Should __pos__ return a copy rather than the instance it

[issue36099] Clarify the difference between mu and xbar in the statistics documentation

2019-02-23 Thread Steven D'Aprano
New submission from Steven D'Aprano : The documentation isn't clear as to the difference between mu and xbar, and why one is used in variance and the other in pvariance. See #36018 for discussion. For the record: mu or μ is the population parameter, i.e. the mean of the entire popu

[issue36018] Add a Normal Distribution class to the statistics module

2019-02-23 Thread Steven D'Aprano
Steven D'Aprano added the comment: Davin: the chice of using mu versus xbar was deliberate, as they represent different quantities: the population mean versus a sample mean. But reading over the docs with fresh eyes, I can now see that the distinction is not as clear as I intended. I

[issue36099] Clarify the difference between mu and xbar in the statistics documentation

2019-02-24 Thread Steven D'Aprano
Steven D'Aprano added the comment: I'm happy with that doc change. If nobody objects, this might make an easy "Good first issue" for the upcoming sprint. Assigning to Cheryl to stop anyone else grabbing it. -- assignee: docs@python -> cheryl.sabell

[issue36100] int() and float() should accept any isnumeric() digit

2019-02-24 Thread Steven D'Aprano
Steven D'Aprano added the comment: I think that analysis is wrong. The Wikipedia page describes the meaning of the Unicode Decimal/Digit/Numeric properties: https://en.wikipedia.org/wiki/Unicode_character_property#Numeric_values_and_types and the characters you show aren't appro

[issue36100] int() and float() should accept any isnumeric() digit

2019-02-24 Thread Steven D'Aprano
Steven D'Aprano added the comment: On Sun, Feb 24, 2019 at 11:07:41AM +, Karthikeyan Singaravelan wrote: > Is this worth an FAQ or an addition to the existing note on int that > specifies characters should belong to 'Nd' category to add a note that > str.isde

[issue36100] Document the differences between str.isdigit, isdecimal and isnumeric

2019-02-24 Thread Steven D'Aprano
Steven D'Aprano added the comment: I'm re-opening the ticket with a change of subject, because I think this should be treated as a documentation enhancement: - improve the docstrings for str.isdigit, isnumeric and isdecimal to make it clear what each does (e.g. what counts

[issue36111] Negative `offset` values are no longer acceptable with implementation of `seek` with python3; should be per POSIX

2019-02-25 Thread Steven D'Aprano
Steven D'Aprano added the comment: I believe you will find that this is because you opened the file in text mode, which means Unicode, not bytes. If you open it in binary mode, the POSIX spec applies: py> fp = open("sample", "rb"); fp.seek(-100, os.SEEK_EN

[issue35892] Fix awkwardness of statistics.mode() for multimodal datasets

2019-02-25 Thread Steven D'Aprano
Steven D'Aprano added the comment: Executive summary: - let's change the behaviour of mode to return a single mode rather than raise an exception if there are multimodes; - and let's do it without a depreciation period. Further comments in no particular order: I agree that

[issue35892] Fix awkwardness of statistics.mode() for multimodal datasets

2019-02-25 Thread Steven D'Aprano
Steven D'Aprano added the comment: What do people think about leaving this as an "Easy First Issue" for the sprint? If others agree that it is sufficiently easy, we can assign the task to Cheryl. It should be fairly easy: mode calls an internal function _counts which is not

[issue36118] Cannot correctly concatenate nested list that contains more than ~45 entries with other nested lists.

2019-02-26 Thread Steven D'Aprano
Steven D'Aprano added the comment: I cannot reproduce the behaviour you show. First problem: ``...`` is a legal Python object, Ellipsis, so your example code literally means: # x = [["a", "b", ... , "BZ"]] x is a list containing one sublist, which contai

[issue35892] Fix awkwardness of statistics.mode() for multimodal datasets

2019-02-26 Thread Steven D'Aprano
Steven D'Aprano added the comment: > Proposed spec: > ''' > Modify the API statistics.mode to handle multimodal cases so that the > first mode encountered is the one returned. If the input is empty, > raise a StatisticsError. Are you happy guaranteeing th

[issue36151] Incorrect answer when calculating 11/3

2019-02-28 Thread Steven D'Aprano
Steven D'Aprano added the comment: Aiden: in the future, please do not post unnecessary screenshots of text. They are hostile to the blind and slight-impaired, they make it impossible to copy your code and run it ourselves, and they cannot be searched for. Instead, copy and paste the

[issue36156] different method, but id function return same value.

2019-03-01 Thread Steven D'Aprano
Steven D'Aprano added the comment: bugs.python.org seems to be down at the moment, so please forgive me if this ticket has already been closed and I'm repeating what has already been said. > This is guaranteed to be unique among simultaneously existing objects. Note the *s

[issue36163] same object, same method, but the is keyword return false.

2019-03-01 Thread Steven D'Aprano
Steven D'Aprano added the comment: The ``is`` operator returns False because the two objects are different objects. Methods are descriptors, and whenever you access an instance method, you get a brand-new method object. This is described in the documentation for descriptors:

[issue36158] Regex search behaves differently in list comprehension

2019-03-01 Thread Steven D'Aprano
Steven D'Aprano added the comment: > i want to apply a regex on a list of strings. The example you give doesn't include a list of strings, it has some unknown "entity" object with an unknown "trigger" attribute. Please refactor the code to remove the use o

[issue36173] BROTHER PRINTER CENTER

2019-03-03 Thread Steven D'Aprano
New submission from Steven D'Aprano : No details given and a spammy, irrelevant title. Closing. Dianmatang, if you are an actual person and not a spam bot, please try adding details of the bug, and using a more informative title. -- nosy: +steven.daprano resolution: -> n

[issue36178] type.__init__ called instead of cls.__init__ when inheriting from type.

2019-03-04 Thread Steven D'Aprano
Steven D'Aprano added the comment: Your metaclass.__new__ method returns None instead of the new class. The rule for calling __init__ is: - if the constructor __new__ returns an instance of the type, then call the initializer __init__ - otherwise, don't call __init__ at a

[issue36206] re.match() not matching escaped hyphens

2019-03-05 Thread Steven D'Aprano
Steven D'Aprano added the comment: You don't escape the text you are searching. Try this: py> re.match(re.escape('-'), "-") <_sre.SRE_Match object; span=(0, 1), match='-'> py> re.match(re.escape('a-c'), "a-c&q

[issue36243] Python os.listdir fails with FileNotFoundError when directory exists

2019-03-08 Thread Steven D'Aprano
Steven D'Aprano added the comment: > How can this happen? Easily -- this looks like a "Time Of Check To Time Of Use" bug. You check for the existence of a directory, and then a fraction of a second later you attempt to use that directory. But on a multi-processing ope

[issue36248] document about `or`, `and` operator.

2019-03-08 Thread Steven D'Aprano
Steven D'Aprano added the comment: Document *what* about the behaviour shown? I'm sure you don't mean to say that we should document the fact the *literally* `1 or 0 and 3` returns 1, but I don't know what you think we should document beyond what is already stated in th

[issue36255] Provide a simple way to delete and edit python's welcome message

2019-03-10 Thread Steven D'Aprano
Steven D'Aprano added the comment: Why do you want to disable the welcome message? > I just want to add a line after the first one to give system information. Sounds like you just want to print something extra, after the welcome message has been printed. -- nosy: +steven

<    4   5   6   7   8   9   10   11   12   13   >