classification
Title: Lib/ftplib.py Netrc class should be removed.
Type: enhancement Stage: resolved
Components: Library (Lib) Versions: Python 3.5
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: berker.peksag Nosy List: berker.peksag, francismb, maatt, python-dev, r.david.murray, vincele
Priority: normal Keywords: patch

Created on 2009-08-01 22:25 by vincele, last changed 2014-11-01 08:52 by berker.peksag. This issue is now closed.

Files
File name Uploaded Description Edit
py3k-ftplib.py-use-before-assignment.patch vincele, 2009-08-01 22:29 fix for the macro parsing in ftplib review
remove_Netrc_class.patch maatt, 2014-04-13 22:43
remove_Netrc_class2.patch maatt, 2014-04-14 15:23 Fix to remove deprecated Netrc class.
issue6623.diff berker.peksag, 2014-10-05 03:00 review
Messages (13)
msg91176 - (view) Author: Vincent Legoll (vincele) Date: 2009-08-01 22:29
The 'macro_lines' list should probably be emptied upon leaving macro
parsing mode.

Simplify code by using the 'macro_name' variable as the boolean for
macro parsing mode.

Deprecated code probably should be fixed until completely removed
msg91278 - (view) Author: Vincent Legoll (vincele) Date: 2009-08-04 22:04
If the macro_lines is not emptied upon end of parsing a macro
definition, if there's another macro definiton it will 'inherit' the
lines from the previous one, which could very well be uncool.

The use before definition should also be fixed.

Please advise if a better fix would be to completely remove the Netrc
class from ftplib, or replace it with a compatibility wrapper that use
the netrc module.
msg182453 - (view) Author: Roundup Robot (python-dev) Date: 2013-02-19 23:33
New changeset acf247d25f17 by R David Murray in branch 'default':
#6623: Add explicit deprecation warning for ftplib.Netrc.
http://hg.python.org/cpython/rev/acf247d25f17
msg182454 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2013-02-19 23:40
Thanks for the report.

ftplib.Netrc has been deprecated (via its doc string) since at least Python 2.4, and is no longer documented in the library reference.  I've added an explicit DeprecationWarning in Python 3.4, and have altered this issue to call for its complete removal in Python 3.5.

I am not planning to fix the existing code, because IMO with deprecated code this old the chance of breaking something exceeds the chance that the bad code will do harm.
msg216037 - (view) Author: Matt Chaput (maatt) Date: 2014-04-13 22:43
Created patch to remove the Netrc class and its unit tests (for Python 3.5).
msg216042 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2014-04-14 01:00
This looks good, except that if we are not going to delete that test routine (and we aren't because we didn't deprecate it :) I think we should instead replace the usage of Netrc with the netrc module.
msg216092 - (view) Author: Matt Chaput (maatt) Date: 2014-04-14 15:23
This patch is the same as my previous one, except instead of removing Netrc usage from the ftplib.test() function, it replaces it with the netrc.netrc object. Note that there are no existing tests for the ftplib.test() function.

Also did some very minor cleanups (bare raise is no longer valid) to get rid of warnings/errors in static analyzer.
msg216223 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2014-04-14 21:23
Did you hand test it?  Also, you could open a new issue to add tests for the ftplib cli, and probably improve and document it?  It was designed as a test, but some people may be using it and it might even be actually useful :)
msg227705 - (view) Author: Francis MB (francismb) * Date: 2014-09-27 18:15
I've downloaded 'remove_Netrc_class2.patch' and passes the test suite, the examples on the documentation run ok and manually from the command line:

$hg tip
changeset:   92597:e29866cb6b98
tag:         tip
parent:      92594:d43d4d4ebf2c
parent:      92596:54987723de99
...
$ hg status
M Lib/ftplib.py
M Lib/test/test_ftplib.py
? Modules/_testembed
$ ./python -m ftplib -d ftp.debian.org -ddebian
*cmd* 'USER anonymous'
*resp* '331 Please specify the password.'
*cmd* 'PASS *********'
*resp* '230 Login successful.'
*cmd* 'CWD debian'
*resp* '250 Directory successfully changed.'
*cmd* 'QUIT'
*resp* '221 Goodbye.'

My test '.netrc' file was:
$ cat ~/.netrc 
machine ftp.debian.org
login anonymous
password anonymous

The patch also looks good for me.
msg227708 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2014-09-27 18:28
Great.  The patch looks good to me, too.

Can someone add a What's New removal entry to the patch?  (See the 3.4 What's New for a model of what removals look like in What's New.)  (It would also be nice if the patch were in hg format so that we get a 'review' link, but that's not critical as I don't think we need a line-by-line review here).
msg228531 - (view) Author: Berker Peksag (berker.peksag) * (Python committer) Date: 2014-10-05 03:00
Here's a patch with a whatsnew entry.
msg230437 - (view) Author: Roundup Robot (python-dev) Date: 2014-11-01 08:46
New changeset ec196a99af8d by Berker Peksag in branch 'default':
Issue #6623: Remove deprecated Netrc class in the ftplib module.
https://hg.python.org/cpython/rev/ec196a99af8d
msg230438 - (view) Author: Berker Peksag (berker.peksag) * (Python committer) Date: 2014-11-01 08:52
Thanks for the patch, Matt. Have you signed a contributor's agreement? You can find it at https://www.python.org/psf/contrib/contrib-form/
History
Date User Action Args
2014-11-01 08:52:37berker.peksagsetstatus: open -> closed
priority: release blocker -> normal
messages: + msg230438

assignee: berker.peksag
resolution: fixed
stage: patch review -> resolved
2014-11-01 08:46:04python-devsetmessages: + msg230437
2014-10-05 03:00:32berker.peksagsetfiles: + issue6623.diff

messages: + msg228531
stage: needs patch -> patch review
2014-09-27 18:28:14r.david.murraysetmessages: + msg227708
stage: patch review -> needs patch
2014-09-27 18:20:16berker.peksagsetnosy: + berker.peksag

stage: needs patch -> patch review
2014-09-27 18:15:37francismbsetnosy: + francismb
messages: + msg227705
2014-04-14 21:23:20r.david.murraysetmessages: + msg216223
2014-04-14 15:23:28maattsetfiles: + remove_Netrc_class2.patch

messages: + msg216092
2014-04-14 01:00:47r.david.murraysetmessages: + msg216042
2014-04-13 22:43:52maattsetfiles: + remove_Netrc_class.patch
nosy: + maatt
messages: + msg216037

2013-02-19 23:40:46r.david.murraysetpriority: normal -> release blocker

type: enhancement

title: Lib/ftplib.py netrc class parsing problem -> Lib/ftplib.py Netrc class should be removed.
nosy: + r.david.murray
versions: + Python 3.5, - Python 3.2
messages: + msg182454
stage: needs patch
2013-02-19 23:33:46python-devsetnosy: + python-dev
messages: + msg182453
2009-08-04 22:04:31vincelesetmessages: + msg91278
2009-08-01 22:29:40vincelesetfiles: + py3k-ftplib.py-use-before-assignment.patch
keywords: + patch
messages: + msg91176

title: Lib/ftplib.py -> Lib/ftplib.py netrc class parsing problem
2009-08-01 22:25:35vincelecreate