[issue17128] OS X system openssl deprecated - installer should build local libssl

2013-02-08 Thread Ned Deily
Ned Deily added the comment: After spending some time on this, I'm downgrading this from release blocker status. First, no one has yet identified any immediate need for openssl 1.0.x features to support possible PyPI enhancements, which was my original concern. Second, since the openssl

[issue17156] Tools/i18n/pygettext.py doesn't parse unicode string.

2013-02-08 Thread Serhiy Storchaka
Changes by Serhiy Storchaka storch...@gmail.com: Removed file: http://bugs.python.org/file28992/pygettext.py.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17156 ___

[issue4331] Can't use _functools.partial() created function as method

2013-02-08 Thread Ramchandra Apte
Changes by Ramchandra Apte maniandra...@gmail.com: -- versions: +Python 3.3, Python 3.4 -Python 3.0 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue4331 ___

[issue17128] OS X system openssl deprecated - installer should build local libssl

2013-02-08 Thread Ronald Oussoren
Ronald Oussoren added the comment: See also: issue 15740 A version of OpenSSL as included in some versions of OSX can be downloaded from http://opensource.apple.com/tarballs/OpenSSL098/, as mentioned in issue 15740 the versions as included in the most recent OS updates doesn't seem to be

[issue11448] docs for HTTPConnection.set_tunnel are ambiguous

2013-02-08 Thread Michael Stahn
Michael Stahn added the comment: I thought the same as Ryan when reading the API. The best way would have been to call set_tunnel - set_proxy and to implement the behaviour you expect on this: setting a proxy. There are some more places at this code which are not quite clear eg: def

[issue17153] tarfile extract fails when Unicode in pathname

2013-02-08 Thread Hynek Schlawack
Changes by Hynek Schlawack h...@ox.cx: -- nosy: +hynek ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17153 ___ ___ Python-bugs-list mailing list

[issue17156] Tools/i18n/pygettext.py doesn't parse unicode string.

2013-02-08 Thread Serhiy Storchaka
Changes by Serhiy Storchaka storch...@gmail.com: -- assignee: - serhiy.storchaka nosy: +serhiy.storchaka ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17156 ___

[issue17149] random.vonmisesvariate() results range is inconsistent for small and not small kappa

2013-02-08 Thread Serhiy Storchaka
Serhiy Storchaka added the comment: Sorry, I was wrong. I missed that z is in range -1..1. Original report is invalid, random.vonmisesvariate() always returns a value on the full circle. However there is some inconsistency. For small kappa (= 1e-6) result range is 0 to 2pi, for other kappa it

[issue14516] test_tools assumes BUILDDIR=SRCDIR

2013-02-08 Thread Ronald Oussoren
Ronald Oussoren added the comment: I've closed the issue because I can no longer reproduce the issue, the changesets mentioned by Ned have fixed the problem. -- status: pending - closed ___ Python tracker rep...@bugs.python.org

[issue17156] Tools/i18n/pygettext.py doesn't parse unicode string.

2013-02-08 Thread Serhiy Storchaka
Serhiy Storchaka added the comment: Here is a patch for 3.x, which correctly detects input file encoding and correctly escapes non-ascii output files if -E specified (and only if it specified). For 2.7 we should just negate an argument for make_escapes. -- components: +Unicode nosy:

[issue17156] Tools/i18n/pygettext.py doesn't parse unicode string.

2013-02-08 Thread Serhiy Storchaka
Serhiy Storchaka added the comment: Here is a patch for 2.7. pygettext doesn't try to detect input encoding and transparently works with bytes, but it no longer escapes non-ascii bytes if -E is not specified. -- versions: +Python 2.7 Added file:

[issue17116] xml.parsers.expat.(errors|model) don't set the __loader__ attribute

2013-02-08 Thread Brett Cannon
Changes by Brett Cannon br...@python.org: -- dependencies: +__loader__ = None should be fine ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17116 ___

[issue17157] issubclass should accept iterables

2013-02-08 Thread Ramchandra Apte
Changes by Ramchandra Apte maniandra...@gmail.com: -- nosy: kushou, ramchandra.apte priority: normal severity: normal status: open title: issubclass should accept iterables type: enhancement versions: Python 3.3, Python 3.4 ___ Python tracker

[issue17157] issubclass should accept iterables

2013-02-08 Thread Ramchandra Apte
Changes by Ramchandra Apte maniandra...@gmail.com: -- components: +Interpreter Core ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17157 ___ ___

[issue17157] issubclass should accept iterables

2013-02-08 Thread Ramchandra Apte
New submission from Ramchandra Apte: kushou pointed this out on #python-dev -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17157 ___ ___

[issue17157] issubclass() should accept iterables in 2nd arg

2013-02-08 Thread Ramchandra Apte
Changes by Ramchandra Apte maniandra...@gmail.com: -- title: issubclass should accept iterables - issubclass() should accept iterables in 2nd arg ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17157

[issue17157] issubclass() should accept iterables in 2nd arg

2013-02-08 Thread Ramchandra Apte
Changes by Ramchandra Apte maniandra...@gmail.com: -- status: open - languishing ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17157 ___ ___

[issue17157] issubclass() should accept iterables in 2nd arg

2013-02-08 Thread Ramchandra Apte
Changes by Ramchandra Apte maniandra...@gmail.com: -- status: languishing - open ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17157 ___ ___

[issue17158] help() module searcher text improvement

2013-02-08 Thread Ramchandra Apte
New submission from Ramchandra Apte: help(modules spam) prints out Here is a list of matching modules. Enter any module name to get more help. before it has even found the modules. This gives the impression that it has found the modules yet it hasn't printed the modules yet. I would suggest

[issue17158] help() module searcher text is misleading

2013-02-08 Thread Ramchandra Apte
Changes by Ramchandra Apte maniandra...@gmail.com: -- title: help() module searcher text improvement - help() module searcher text is misleading ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17158

[issue17157] issubclass() should accept iterables in 2nd arg

2013-02-08 Thread Mark Dickinson
Mark Dickinson added the comment: What's the use case for this? issubclass already accept tuples, just like isinstance: issubclass(bool, (int, float)) True -- nosy: +mark.dickinson versions: -Python 3.3 ___ Python tracker rep...@bugs.python.org

[issue17149] random.vonmisesvariate() results range is inconsistent for small and not small kappa

2013-02-08 Thread Mark Dickinson
Mark Dickinson added the comment: Agreed that this seems inconsistent. The current normalization for non-small kappa is a little odd: e.g, if mu is small and negative (-0.01, say), then we get a range that goes roughly from pi to 3*pi, when a range from -pi to pi would have made more sense.

[issue17159] Remove explicit type check from inspect.Signature.from_function()

2013-02-08 Thread Stefan Behnel
New submission from Stefan Behnel: I can't see a reason why Signature.from_function() should explicitly check the type of the object being passed in. As long as the object has all required attributes, it should be accepted. This is specifically an issue with Cython compiled functions, which

[issue15580] fix True/False/None reST markup

2013-02-08 Thread Zearin
Zearin added the comment: I agree that globally linking all occurrences of True/False/None is overkill. Perhaps linking the first occurrence per webpage would be a good standard? However, I *strongly* believe that: 1. The words be capitalized 2. The words should be marked up as

[issue17159] Remove explicit type check from inspect.Signature.from_function()

2013-02-08 Thread Stefan Behnel
Stefan Behnel added the comment: This patch removes the type check from Signature.from_function() and cleans up the type tests in signature() to use whatever the inspect module defines as isfunction() and isbuiltin(), so that it becomes properly monkey-patchable. It also adds a test that

[issue17159] Remove explicit type check from inspect.Signature.from_function()

2013-02-08 Thread Éric Araujo
Éric Araujo added the comment: Patch looks good, but I’m worried about the change from TypeError to AttributeError in a stable version. Could you also make clear that all function-like objects are accepted in the doc? -- nosy: +eric.araujo ___

[issue17159] Remove explicit type check from inspect.Signature.from_function()

2013-02-08 Thread Stefan Behnel
Stefan Behnel added the comment: The method doesn't seem to be documented, and I'm not sure if the docstring really benefits from this lengthy addition. Anyway, here's a patch that includes the docstring update. The exception could be kept the same if we catch an AttributeError and

[issue4483] Error to build _dbm module during make

2013-02-08 Thread ddve...@ucar.edu
ddve...@ucar.edu added the comment: This is still an issue in Python 2.7.3 but there is a quick manual workaround. I know it's trivial and one can easily develop it from what is said in the thread or maybe looking at the patches, but for reference this is a nice recipe as oppose to digging

[issue15580] fix True/False/None reST markup

2013-02-08 Thread R. David Murray
R. David Murray added the comment: They should be capitalized and marked up as code if they refer to the objects. If they refer only to (to use bad english) the truthiness or falsiness of the value in question, then they should be lower case and not marked up as code. Quickly scanning the

[issue17047] Fix double double words words

2013-02-08 Thread Serhiy Storchaka
Serhiy Storchaka added the comment: I cannot find python-gdb.py. This is a copy of Tools/gdb/libpython.py. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17047 ___

[issue17160] test_urllib2net fails

2013-02-08 Thread ddve...@ucar.edu
New submission from ddve...@ucar.edu: test_urllib2net fails as follows. Looking at test_urllib2net.py line 165 does not reveal anything interesting to me ./python Lib/test/regrtest.py -uall -v test_urllib2net == CPython 2.7.3 (default, Feb 8 2013, 08:28:21) [GCC 4.7.2] ==

[issue17160] test_urllib2net fails

2013-02-08 Thread R. David Murray
R. David Murray added the comment: It passes on all our buildbots, and for me locally. Is it possible there is a proxy server between you and python.org that is changing the url returned? -- nosy: +r.david.murray ___ Python tracker

[issue17161] make install misses the man and the static library

2013-02-08 Thread ddve...@ucar.edu
New submission from ddve...@ucar.edu: This is for python 2.7.3 built with 0) ./configure --enable-shared --with-system-expat 1) I need both static and shared object, however libpython2.7.a is not copied in the installation target lib. Is this on purpose, or am I missing a flag in configure?

[issue17160] test_urllib2net fails

2013-02-08 Thread ddve...@ucar.edu
ddve...@ucar.edu added the comment: Yes, it is possible, do you want me to investigate more with my network people? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17160 ___

[issue17161] make install misses the man and the static library

2013-02-08 Thread Éric Araujo
Changes by Éric Araujo mer...@netwok.org: -- nosy: +eric.araujo ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17161 ___ ___ Python-bugs-list

[issue17160] test_urllib2net fails

2013-02-08 Thread R. David Murray
R. David Murray added the comment: I think only if you want to. As far as we are concerned the test is correct and passing. (And this kind of thing is the reason that that test set is only run when -uall is specified.) I'm going to close the issue. If you do investigate, and feel that

[issue17108] import silently prefers package over module when both available

2013-02-08 Thread Éric Araujo
Éric Araujo added the comment: I knew that a package would win over a module, but an initless package does not? Yuck :( -- nosy: +eric.araujo ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17108

[issue17108] import silently prefers package over module when both available

2013-02-08 Thread R. David Murray
R. David Murray added the comment: It has to be that way to preserve backward compatibility, since IIUC before the PEP there was no such thing as an initless package, it was just a directory that was ignored by import. -- ___ Python tracker

[issue17162] Py_LIMITED_API needs a PyType_GenericDealloc

2013-02-08 Thread Bradley Froehle
New submission from Bradley Froehle: I tried to implement a custom extension type using PyType_FromSpec and Py_LIMITED_API but couldn't implement tp_dealloc: static void mytype_dealloc(mytypeobject *self) { // free some fields in mytypeobject Py_TYPE(self)-tp_free((PyObject *) self);

[issue17162] Py_LIMITED_API needs a PyType_GenericDealloc

2013-02-08 Thread Bradley Froehle
Bradley Froehle added the comment: I should mention that essentially what I'm advocating is renaming and exposing `object_dealloc` in Objects/typeobject.c. The proper name is not obvious to me... should it be PyObject_GenericDealloc since it acts on objects? Or PyType_GenericDealloc since it

[issue17160] test_urllib2net fails

2013-02-08 Thread Ned Deily
Ned Deily added the comment: The test is failing because of a restructuring of the docs.python.org website. The test was changed on 2012-10-28 to use the new URL (923ca6d73bad and friends). That change will be in the next set of maintenance releases including 2.7.4 real soon now.

[issue17162] Py_LIMITED_API needs a PyType_GenericDealloc

2013-02-08 Thread Antoine Pitrou
Changes by Antoine Pitrou pit...@free.fr: -- nosy: +loewis ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17162 ___ ___ Python-bugs-list mailing

[issue17108] import silently prefers package over module when both available

2013-02-08 Thread Eric Snow
Eric Snow added the comment: Deprecating pkg/__init__.py and having pkg.py coexist with pkg/ was on the table in an earlier proposal (PEP 402). In that case pkg/__init__.py would have been tried first for backward compatbility (until eliminated in Python 4 or whenever). PEP 420 (namespace

[issue17163] Fix test discovery for test_file.py

2013-02-08 Thread Zachary Ware
Changes by Zachary Ware zachary.w...@gmail.com: -- components: Tests files: test_file_discovery.diff keywords: patch nosy: brett.cannon, ezio.melotti, zach.ware priority: normal severity: normal status: open title: Fix test discovery for test_file.py type: behavior versions: Python 3.3,

[issue6972] zipfile.ZipFile overwrites files outside destination path

2013-02-08 Thread Arfrever Frehtes Taifersar Arahesis
Changes by Arfrever Frehtes Taifersar Arahesis arfrever@gmail.com: -- stage: needs patch - committed/rejected ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue6972 ___

[issue17032] Misleading error message: global name 'X' is not defined

2013-02-08 Thread Ram Rachum
Ram Rachum added the comment: I made a patch. Is it okay? (I don't normally use Mercurial nor work with patches.) -- keywords: +patch Added file: http://bugs.python.org/file29006/cpython_patch1of1_8e9346e7ae87.patch ___ Python tracker

[issue17032] Misleading error message: global name 'X' is not defined

2013-02-08 Thread Éric Araujo
Éric Araujo added the comment: Patch looks good. Does the test suite still pass? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17032 ___ ___

[issue17032] Misleading error message: global name 'X' is not defined

2013-02-08 Thread Ram Rachum
Ram Rachum added the comment: I don't program C at all. I have no idea how to compile Python or run the test suite. It took me half an hour just to produce this patch. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17032

[issue17032] Misleading error message: global name 'X' is not defined

2013-02-08 Thread Éric Araujo
Éric Araujo added the comment: If you’re using a programmer-friendly OS compiling is not hard. See http://docs.python.org/devguide for instructions. Otherwise somebody else will test the patch. Thanks for your contribution! -- ___ Python tracker

[issue17032] Misleading error message: global name 'X' is not defined

2013-02-08 Thread Ram Rachum
Ram Rachum added the comment: I think I'll go for option 2, thanks. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17032 ___ ___

[issue17130] Add runcall() function to profile.py and cProfile.py

2013-02-08 Thread Éric Araujo
Changes by Éric Araujo mer...@netwok.org: -- keywords: +easy nosy: +eric.araujo ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17130 ___ ___

[issue17143] trace.py uses _warn without importing it

2013-02-08 Thread Éric Araujo
Éric Araujo added the comment: Great patch with tests. -- nosy: +eric.araujo ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17143 ___ ___

[issue17147] BytesIO should be mentioned in SpooledTemporaryFile documentation

2013-02-08 Thread Éric Araujo
Éric Araujo added the comment: Typos: whenewer → whether and has specified → was specified Otherwise good to commit. -- nosy: +eric.araujo type: compile error - enhancement ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17147

[issue17155] logging can raise UnicodeEncodeError

2013-02-08 Thread Éric Araujo
Éric Araujo added the comment: Hm the correct way to use exception is: except Something: logger.exception('problem while doing X') i.e. this is a generic unicode-to-str-with-default-encoding problem, not something specific to logging. Vinay, do you think logging should do

[issue17161] make install misses the man and the static library

2013-02-08 Thread Ned Deily
Ned Deily added the comment: It would be helpful in the future if you would open separate issues for each problem you report. To address your points: 1) For unix-y builds, the static library along with other files needed for embedding Python are installed in the standard Python library

[issue17159] Remove explicit type check from inspect.Signature.from_function()

2013-02-08 Thread Terry J. Reedy
Terry J. Reedy added the comment: My first concern is whether this is a behavior issue that can be fixed in the next 3.3 release or an enhancement request that should wait for 3.4. If Signature.from_function were documented in the manual with the current limitation, this issue would

[issue17164] MozillaCookieJar does not handle session cookies

2013-02-08 Thread Piotr Dobrogost
New submission from Piotr Dobrogost: It seems there's no information on how should session cookies be stored in the Netscape/Mozilla's cookies.txt file with regard to expiry time - see http://www.cookiecentral.com/faq/#3.5 Maybe Netscape has not been saving such cookies at all thus this lack

[issue17159] Remove explicit type check from inspect.Signature.from_function()

2013-02-08 Thread Stefan Behnel
Stefan Behnel added the comment: Fine with me. Updated patch attached. -- Added file: http://bugs.python.org/file29007/inspect_sig_2.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17159

[issue17155] logging can raise UnicodeEncodeError

2013-02-08 Thread Vinay Sajip
Vinay Sajip added the comment: It is by design that logging accepts arbitrary objects, rather than just strings, see docs.python.org/howto/logging.html#arbitrary-object-messages and, as documented, the instance's __str__ will be called by logging calling str() on the instance. If people are

[issue17161] make install misses the man and the static library

2013-02-08 Thread Ned Deily
Ned Deily added the comment: Here's a patch for 2.7 that separates the maninstall target into a altmaninstall target (which installs just the python2.7 man page as before) and a maninstall target (which adds symlinks from python2 and python). Patches for 3x to follow. -- keywords:

[issue17130] Add runcall() function to profile.py and cProfile.py

2013-02-08 Thread Guido van Rossum
Guido van Rossum added the comment: While we're on profile convenience features, how about adding two context managers: - one that just profiles a block and prints the profile (or dumps the data to a file) - one that takes a Profile instance and enables profiling to that instance E.g. (1)

[issue17156] Tools/i18n/pygettext.py doesn't parse unicode string.

2013-02-08 Thread umedoblock
umedoblock added the comment: thanks serhiy.storchaka. I try to use Shift_JIS, UTF-8, ISO-2022-JP and EUC-JP. your patch detects UTF-8. However it doesn't detect Shift_JIS, ISO-2022-JP and EUC-JP. it misunderstand ISO-2022-JP charset is UTF-8. it raised UnicodeDecodeError when Shift_JIS,

[issue17156] Tools/i18n/pygettext.py doesn't parse unicode string.

2013-02-08 Thread umedoblock
umedoblock added the comment: I use just a pygettext_unicode.patch. don't use a pygettext_unicode-2.7.patch. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17156 ___

[issue17108] import silently prefers package over module when both available

2013-02-08 Thread Terry J. Reedy
Terry J. Reedy added the comment: I looked through both the old 2.7 import statement doc and the new 3.3 import statement doc and import system chapter (5. The import system) and could not find anything about what a Path Based Finder path entry finder does when a particular path entry has

[issue17161] make install misses the man and the static library

2013-02-08 Thread Ned Deily
Changes by Ned Deily n...@acm.org: Added file: http://bugs.python.org/file29010/issue17161_32.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17161 ___

[issue17161] make install misses the man and the static library

2013-02-08 Thread Ned Deily
Changes by Ned Deily n...@acm.org: Added file: http://bugs.python.org/file29011/issue17161_33.patch ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17161 ___

[issue6478] time.tzset does not reset _strptime's locale time cache

2013-02-08 Thread Berker Peksag
Berker Peksag added the comment: There is a long line in _strptime.py which I will fix before committing. Ops, fixed. Also, I've found a better place for the test in Lib/test/test_strptime.py and moved it to the test_strptime.CacheTests. When I applied the patch, test_bad_timezone test

[issue17161] make install misses the man and the static library

2013-02-08 Thread Éric Araujo
Éric Araujo added the comment: 3.3 patch looks fine. For 2.7, I notice python2.7.1 is linked to python.1 and python2.1; do we install python as python2? -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17161

[issue17152] Array module should support boolean natively

2013-02-08 Thread Terry J. Reedy
Terry J. Reedy added the comment: You are proposing a bit array. Whether the bits are interpreted or displayed as 0/1 or f/t or False/True is secondary. The problem is that bit arrays do not fit the array model, with its minimum byte size per element of 1. There are other aspects of arrays

[issue17157] issubclass() should accept iterables in 2nd arg

2013-02-08 Thread Terry J. Reedy
Terry J. Reedy added the comment: Given isxxx(src, target_s), the proposal would seem to be to change the internal test type(target_s) is tuple to hasattr(type(target_s), '__iter__'). This depends on metaclasses not having .__iter__ methods, just as type does not. However, a subclass of type

[issue17158] help() module searcher text is misleading

2013-02-08 Thread Terry J. Reedy
Terry J. Reedy added the comment: You are asking that help(modules spam) act more like help(modules), which sensibly prints Enter ... after the list. A minor but reasonable request, but since the current behavior is not a bug and some code might possible depend on it, only for 3.4. Here is a

[issue12768] docstrings for the threading module

2013-02-08 Thread Eli Bendersky
Eli Bendersky added the comment: moijes, Yes, it's open. You can examine the comments for the previous patch by clicking on the review link near the patch. You need to be logged in to the issue tracker to see that. -- ___ Python tracker

[issue17161] make install misses the man and the static library

2013-02-08 Thread Ned Deily
Ned Deily added the comment: do we install python as python2? Yes, PEP 394 support was added in 2.7.3 (issue12627). -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue17161 ___

[issue17161] make install misses the man and the static library

2013-02-08 Thread Roundup Robot
Roundup Robot added the comment: New changeset 29826cb3f12e by Ned Deily in branch '2.7': Issue #17161: make install now also installs a python2 and python man page. http://hg.python.org/cpython/rev/29826cb3f12e New changeset b0d9b273c029 by Ned Deily in branch '3.2': Issue #17161: make install

[issue17161] make install misses the man and the static library

2013-02-08 Thread Ned Deily
Ned Deily added the comment: As of 2.7.4, 3.2.4, 3.3.1 and 3.4.0, make install will now install the missing symlinks for the missing man pages, python/python2 or python3. -- assignee: - ned.deily resolution: - fixed stage: patch review - committed/rejected status: open - closed

[issue17165] Use except ImportError instead of bare except in _strptime.py

2013-02-08 Thread Berker Peksag
New submission from Berker Peksag: See for the source: http://hg.python.org/cpython/file/default/Lib/_strptime.py#l24 and for the reference: http://docs.python.org/dev/library/_dummy_thread.html#module-_dummy_thread -- components: Library (Lib) files: _strptime_importerror.diff