]> granicus.if.org Git - python/log
python
17 years agoMake the test more robust by trying to reconnect up to 3 times
Neal Norwitz [Fri, 25 Jan 2008 06:37:23 +0000 (06:37 +0000)]
Make the test more robust by trying to reconnect up to 3 times
in case there were transient failures.  This will hopefully silence
the buildbots for this test.  As we find other tests that have a problem,
we can fix with a similar strategy assuming it is successful.  It worked
on my box in a loop for 10+ runs where it would have an exception otherwise.

17 years agoMore design notes
Raymond Hettinger [Fri, 25 Jan 2008 01:46:33 +0000 (01:46 +0000)]
More design notes

17 years agoFix-up signature for approximation.
Raymond Hettinger [Fri, 25 Jan 2008 01:23:38 +0000 (01:23 +0000)]
Fix-up signature for approximation.

17 years agoAdd one other review comment.
Raymond Hettinger [Fri, 25 Jan 2008 01:13:12 +0000 (01:13 +0000)]
Add one other review comment.

17 years agoMark todos and review comments.
Raymond Hettinger [Fri, 25 Jan 2008 00:33:45 +0000 (00:33 +0000)]
Mark todos and review comments.

17 years agoAdd support for copy, deepcopy, and pickle.
Raymond Hettinger [Fri, 25 Jan 2008 00:21:54 +0000 (00:21 +0000)]
Add support for copy, deepcopy, and pickle.

17 years agoMore code cleanup. Remove unnecessary indirection to useless class methods.
Raymond Hettinger [Thu, 24 Jan 2008 23:50:26 +0000 (23:50 +0000)]
More code cleanup.  Remove unnecessary indirection to useless class methods.

17 years agoNews entry for r60265 (Issue 1920).
Amaury Forgeot d'Arc [Thu, 24 Jan 2008 22:59:25 +0000 (22:59 +0000)]
News entry for r60265 (Issue 1920).

17 years ago#1920: when considering a block starting by "while 0", the compiler optimized the
Amaury Forgeot d'Arc [Thu, 24 Jan 2008 22:51:18 +0000 (22:51 +0000)]
#1920: when considering a block starting by "while 0", the compiler optimized the
whole construct away, even when an 'else' clause is present::

    while 0:
        print("no")
    else:
        print("yes")

did not generate any code at all.

Now the compiler emits the 'else' block, like it already does for 'if' statements.

Will backport.

17 years agoShorter pprint's for empty sets and frozensets. Fix indentation of frozensets. ...
Raymond Hettinger [Thu, 24 Jan 2008 21:47:56 +0000 (21:47 +0000)]
Shorter pprint's for empty sets and frozensets.  Fix indentation of frozensets.  Add tests including two complex data structures.

17 years agoExpand tests to include nested graph structures.
Raymond Hettinger [Thu, 24 Jan 2008 21:23:58 +0000 (21:23 +0000)]
Expand tests to include nested graph structures.

17 years agoAdd support for int(r) just like the other numeric classes.
Raymond Hettinger [Thu, 24 Jan 2008 19:30:19 +0000 (19:30 +0000)]
Add support for int(r) just like the other numeric classes.

17 years agoInvert the checks in get_[u]long and get_[u]longlong. The intent was
Thomas Heller [Thu, 24 Jan 2008 19:15:02 +0000 (19:15 +0000)]
Invert the checks in get_[u]long and get_[u]longlong.  The intent was
to not accept float types; the result was that integer-like objects
were not accepted.

Ported from release25-maint.

17 years agoAdd support for trunc().
Raymond Hettinger [Thu, 24 Jan 2008 19:05:29 +0000 (19:05 +0000)]
Add support for trunc().

17 years agoReplace Py_BuildValue with PyTuple_Pack because it is faster.
Thomas Heller [Thu, 24 Jan 2008 18:54:12 +0000 (18:54 +0000)]
Replace Py_BuildValue with PyTuple_Pack because it is faster.
Also add a missing DECREF.

17 years agoUse a PyDictObject again for the array type cache; retrieving items
Thomas Heller [Thu, 24 Jan 2008 18:36:27 +0000 (18:36 +0000)]
Use a PyDictObject again for the array type cache; retrieving items
from the WeakValueDictionary was slower by nearly a factor of 3.

To avoid leaks, weakref proxies for the array types are put into the
cache dict, with weakref callbacks that removes the entries when the
type goes away.

17 years agoNews about recently fixed crashers:
Guido van Rossum [Thu, 24 Jan 2008 18:21:02 +0000 (18:21 +0000)]
News about recently fixed crashers:
- A few crashers fixed: weakref_in_del.py (issue #1377858);
  loosing_dict_ref.py (issue #1303614, test67.py);
  borrowed_ref_[34].py (not in tracker).

17 years agoRevert 60189 and restore performance.
Raymond Hettinger [Thu, 24 Jan 2008 18:12:23 +0000 (18:12 +0000)]
Revert 60189 and restore performance.

17 years agoClean-up and speed-up code by accessing numerator/denominator directly. There's...
Raymond Hettinger [Thu, 24 Jan 2008 18:05:54 +0000 (18:05 +0000)]
Clean-up and speed-up code by accessing numerator/denominator directly.  There's no reason to enforce readonliness

17 years agoFix test67.py from issue #1303614.
Guido van Rossum [Thu, 24 Jan 2008 17:58:05 +0000 (17:58 +0000)]
Fix test67.py from issue #1303614.

17 years agoFi debug turd -- a call accidentally left out.
Guido van Rossum [Thu, 24 Jan 2008 15:53:22 +0000 (15:53 +0000)]
Fi debug turd -- a call accidentally left out.

17 years agoUpdated for optional delay argument to FileHandler and subclasses.
Vinay Sajip [Thu, 24 Jan 2008 12:43:33 +0000 (12:43 +0000)]
Updated for optional delay argument to FileHandler and subclasses.

17 years agoAdded documentation for optional delay argument to FileHandler and subclasses.
Vinay Sajip [Thu, 24 Jan 2008 12:38:30 +0000 (12:38 +0000)]
Added documentation for optional delay argument to FileHandler and subclasses.

17 years agoAdded optional delay argument to FileHandler and subclasses.
Vinay Sajip [Thu, 24 Jan 2008 12:37:33 +0000 (12:37 +0000)]
Added optional delay argument to FileHandler and subclasses.

17 years agoAdded optional delay argument to FileHandler and subclasses.
Vinay Sajip [Thu, 24 Jan 2008 12:37:08 +0000 (12:37 +0000)]
Added optional delay argument to FileHandler and subclasses.

17 years agoFix issue1789: The tutorial contained a misuse of the struct module.
Gregory P. Smith [Thu, 24 Jan 2008 09:38:26 +0000 (09:38 +0000)]
Fix issue1789: The tutorial contained a misuse of the struct module.

(also remove an unneeded import struct from test_largefile)

17 years agoFix the test_urllib2net failures that were caused by r58067.
Neal Norwitz [Thu, 24 Jan 2008 07:40:51 +0000 (07:40 +0000)]
Fix the test_urllib2net failures that were caused by r58067.
I'm not sure this is the correct fix, but at least the test passes
now and should be closer to correct.

17 years agoFix the tests by restoring __import__. I think the test is still valid.
Neal Norwitz [Thu, 24 Jan 2008 04:14:50 +0000 (04:14 +0000)]
Fix the tests by restoring __import__.  I think the test is still valid.

17 years agoCleanup
Raymond Hettinger [Thu, 24 Jan 2008 02:05:06 +0000 (02:05 +0000)]
Cleanup

17 years agoMinor clean-up and more tests.
Raymond Hettinger [Thu, 24 Jan 2008 02:00:25 +0000 (02:00 +0000)]
Minor clean-up and more tests.

17 years agoAdd first-cut at an approximation function (still needs rounding tweaks). Add contin...
Raymond Hettinger [Thu, 24 Jan 2008 00:54:21 +0000 (00:54 +0000)]
Add first-cut at an approximation function (still needs rounding tweaks).  Add continued fraction conversions.

17 years agoTurn three recently fixed crashers into regular tests.
Guido van Rossum [Wed, 23 Jan 2008 23:23:43 +0000 (23:23 +0000)]
Turn three recently fixed crashers into regular tests.

17 years agoThere was an error on exit if no sys.exitfunc was defined. Issue 1647.
Kurt B. Kaiser [Wed, 23 Jan 2008 22:55:26 +0000 (22:55 +0000)]
There was an error on exit if no sys.exitfunc was defined. Issue 1647.

17 years agoFix misleading comment reported in issue #1917.
Guido van Rossum [Wed, 23 Jan 2008 22:43:27 +0000 (22:43 +0000)]
Fix misleading comment reported in issue #1917.

17 years agoCould not open files in .idlerc directory if latter was hidden on Windows.
Kurt B. Kaiser [Wed, 23 Jan 2008 22:19:23 +0000 (22:19 +0000)]
Could not open files in .idlerc directory if latter was hidden on Windows.
Issue 1743, Issue 1862.

17 years agoFix two crashers.
Guido van Rossum [Wed, 23 Jan 2008 20:19:01 +0000 (20:19 +0000)]
Fix two crashers.

17 years agoApplied #1069410
Christian Heimes [Wed, 23 Jan 2008 17:15:06 +0000 (17:15 +0000)]
Applied #1069410
The "can't load dll" message box on Windows is suppressed while an extension is loaded by calling SetErrorMode in dynload_win.c. The error is still reported properly.

17 years agoFixed bug #1915: Python compiles with --enable-unicode=no again. However several...
Christian Heimes [Wed, 23 Jan 2008 14:20:50 +0000 (14:20 +0000)]
Fixed bug #1915: Python compiles with --enable-unicode=no again. However several extension methods and modules do not work without unicode support.

17 years agopatch 1754489 by vlahan:
Armin Rigo [Wed, 23 Jan 2008 14:07:13 +0000 (14:07 +0000)]
patch 1754489 by vlahan:
improve portability of address length calculation for AF_UNIX sockets

17 years agoUse Py_TYPE() instead of ->ob_type
Christian Heimes [Wed, 23 Jan 2008 14:00:25 +0000 (14:00 +0000)]
Use Py_TYPE() instead of ->ob_type

17 years agoI'm tired of these tests breaking at Google due to our large number of
Guido van Rossum [Wed, 23 Jan 2008 01:18:27 +0000 (01:18 +0000)]
I'm tired of these tests breaking at Google due to our large number of
users and groups in LDAP/NIS.  So I'm limiting the extra-heavy part of
the tests to passwd/group files with at most 1000 entries.

17 years agoLet pprint() support sets and frozensets (suggested by David Mertz).
Raymond Hettinger [Wed, 23 Jan 2008 00:04:40 +0000 (00:04 +0000)]
Let pprint() support sets and frozensets (suggested by David Mertz).

17 years agodocstring and comment updates suggested by Giampaolo Rodola'
Gregory P. Smith [Tue, 22 Jan 2008 23:15:34 +0000 (23:15 +0000)]
docstring and comment updates suggested by Giampaolo Rodola'

17 years agoImprove variable name in sample code
Raymond Hettinger [Tue, 22 Jan 2008 22:09:26 +0000 (22:09 +0000)]
Improve variable name in sample code

17 years agoGive zip() the same guarantee as izip() for left-to-right evaluation.
Raymond Hettinger [Tue, 22 Jan 2008 20:18:53 +0000 (20:18 +0000)]
Give zip() the same guarantee as izip() for left-to-right evaluation.

17 years agoFix for #1087741 patch.
Georg Brandl [Tue, 22 Jan 2008 19:56:03 +0000 (19:56 +0000)]
Fix for #1087741 patch.

17 years agoDocument when to use izip_longest().
Raymond Hettinger [Tue, 22 Jan 2008 19:51:41 +0000 (19:51 +0000)]
Document when to use izip_longest().

17 years agoDon't repeat yourself
Christian Heimes [Tue, 22 Jan 2008 15:25:18 +0000 (15:25 +0000)]
Don't repeat yourself
Added the macros PyModule_AddIntMacro and PyModule_AddStringMacro. They shorten PyModule_AddIntConstant(m, "AF_INET", AF_INET) to PyModule_AddIntMacro(m, AF_INET)

17 years agoFixed a missing (X) in define
Christian Heimes [Tue, 22 Jan 2008 15:01:25 +0000 (15:01 +0000)]
Fixed a missing (X) in define

17 years agoFix \xhh specs, #1889.
Georg Brandl [Tue, 22 Jan 2008 07:53:31 +0000 (07:53 +0000)]
Fix \xhh specs, #1889.

17 years ago- Fix Issue #1703448: A joined thread could show up in the
Gregory P. Smith [Tue, 22 Jan 2008 01:20:42 +0000 (01:20 +0000)]
- Fix Issue #1703448: A joined thread could show up in the
  threading.enumerate() list after the join() for a brief period until
  it actually exited.

17 years agoReplace spam.acquire() try: ... finally: spam.release() with "with spam:"
Gregory P. Smith [Tue, 22 Jan 2008 01:12:02 +0000 (01:12 +0000)]
Replace spam.acquire() try: ... finally: spam.release() with "with spam:"

17 years agoaccepts and closes issue #1221598: adds an optional callback to ftplib.FTP
Gregory P. Smith [Tue, 22 Jan 2008 00:19:41 +0000 (00:19 +0000)]
accepts and closes issue #1221598: adds an optional callback to ftplib.FTP
storbinary() and storlines() methods.

17 years agoMake's MAKEFLAGS variable is set to a string containing the single-letter
Brett Cannon [Mon, 21 Jan 2008 23:50:16 +0000 (23:50 +0000)]
Make's MAKEFLAGS variable is set to a string containing the single-letter
arguments to Make. This means there are no hyphens. Fix the '-s' check to
silence distutils to now work.

17 years agoReformat some ugly code.
Georg Brandl [Mon, 21 Jan 2008 21:28:32 +0000 (21:28 +0000)]
Reformat some ugly code.

17 years agoPatch #1720595: add T_BOOL to the range of structmember types.
Georg Brandl [Mon, 21 Jan 2008 21:23:15 +0000 (21:23 +0000)]
Patch #1720595: add T_BOOL to the range of structmember types.
Patch by Angelo Mottola, reviewed by MvL, tests by me.

17 years agoAdd the correct build dir when building with pydebug.
Georg Brandl [Mon, 21 Jan 2008 21:19:07 +0000 (21:19 +0000)]
Add the correct build dir when building with pydebug.

17 years agoAdd a "const" to make gcc happy.
Georg Brandl [Mon, 21 Jan 2008 21:14:21 +0000 (21:14 +0000)]
Add a "const" to make gcc happy.

17 years ago#1715: include sub-extension modules in pydoc text output.
Georg Brandl [Mon, 21 Jan 2008 21:05:49 +0000 (21:05 +0000)]
#1715: include sub-extension modules in pydoc text output.

17 years agoAdapt to latest doctools refactoring.
Georg Brandl [Mon, 21 Jan 2008 20:20:53 +0000 (20:20 +0000)]
Adapt to latest doctools refactoring.

17 years agoFollow PEP 8 in module docstring.
Walter Dörwald [Mon, 21 Jan 2008 20:18:04 +0000 (20:18 +0000)]
Follow PEP 8 in module docstring.

17 years agoUse original location of document, which has translations.
Georg Brandl [Mon, 21 Jan 2008 18:41:24 +0000 (18:41 +0000)]
Use original location of document, which has translations.

17 years agoAdd NEWS entry for #1882.
Georg Brandl [Mon, 21 Jan 2008 18:36:51 +0000 (18:36 +0000)]
Add NEWS entry for #1882.

17 years agoIssue #1882: when compiling code from a string, encoding cookies in the
Georg Brandl [Mon, 21 Jan 2008 18:35:49 +0000 (18:35 +0000)]
Issue #1882: when compiling code from a string, encoding cookies in the
second line of code were not always recognized correctly.

17 years agoUpdated to include news on recent logging fixes and documentation changes.
Vinay Sajip [Mon, 21 Jan 2008 18:16:05 +0000 (18:16 +0000)]
Updated to include news on recent logging fixes and documentation changes.

17 years ago#1530959: change distutils build dir for --with-pydebug python builds.
Georg Brandl [Mon, 21 Jan 2008 17:42:40 +0000 (17:42 +0000)]
#1530959: change distutils build dir for --with-pydebug python builds.

17 years agoMinor documentation change - hyperlink tidied up.
Vinay Sajip [Mon, 21 Jan 2008 17:39:22 +0000 (17:39 +0000)]
Minor documentation change - hyperlink tidied up.

17 years agoClarify $ behavior in re docstring. #1631394.
Georg Brandl [Mon, 21 Jan 2008 17:29:23 +0000 (17:29 +0000)]
Clarify $ behavior in re docstring. #1631394.

17 years ago#1726198: replace while 1: fp.readline() with file iteration.
Georg Brandl [Mon, 21 Jan 2008 17:22:06 +0000 (17:22 +0000)]
#1726198: replace while 1: fp.readline() with file iteration.

17 years agoFix old link.
Georg Brandl [Mon, 21 Jan 2008 17:17:00 +0000 (17:17 +0000)]
Fix old link.

17 years agoAdapt pydoc to new doc URLs.
Georg Brandl [Mon, 21 Jan 2008 17:13:03 +0000 (17:13 +0000)]
Adapt pydoc to new doc URLs.

17 years agoFix: #1836: Off-by-one bug in TimedRotatingFileHandler rollover calculation. Patch...
Vinay Sajip [Mon, 21 Jan 2008 17:02:26 +0000 (17:02 +0000)]
Fix: #1836: Off-by-one bug in TimedRotatingFileHandler rollover calculation. Patch thanks to Kathryn M. Kowalski.

17 years ago#997912: acknowledge nested scopes in tutorial.
Georg Brandl [Mon, 21 Jan 2008 16:51:51 +0000 (16:51 +0000)]
#997912: acknowledge nested scopes in tutorial.

17 years agoRemoving bundlebuilder docs again -- it's not to be used anymore (see #779825).
Georg Brandl [Mon, 21 Jan 2008 16:46:58 +0000 (16:46 +0000)]
Removing bundlebuilder docs again -- it's not to be used anymore (see #779825).

17 years agoAdd a stub for bundlebuilder documentation.
Georg Brandl [Mon, 21 Jan 2008 16:36:00 +0000 (16:36 +0000)]
Add a stub for bundlebuilder documentation.

17 years ago#1555501: document plistlib and move it to the general library.
Georg Brandl [Mon, 21 Jan 2008 16:34:07 +0000 (16:34 +0000)]
#1555501: document plistlib and move it to the general library.

17 years agoFix example.
Georg Brandl [Mon, 21 Jan 2008 16:28:13 +0000 (16:28 +0000)]
Fix example.

17 years agommap is an extension module.
Georg Brandl [Mon, 21 Jan 2008 14:18:14 +0000 (14:18 +0000)]
mmap is an extension module.

17 years ago#1087741: make mmap.mmap the type of mmap objects, not a
Georg Brandl [Mon, 21 Jan 2008 14:16:46 +0000 (14:16 +0000)]
#1087741: make mmap.mmap the type of mmap objects, not a
factory function. Allow it to be subclassed.

17 years agoA bunch of header files were not listed as dependencies for object files. Changes...
Christian Heimes [Mon, 21 Jan 2008 13:11:15 +0000 (13:11 +0000)]
A bunch of header files were not listed as dependencies for object files. Changes to files like Parser/parser.h weren't picked up by make.

17 years ago#1269: fix a bug in pstats.add_callers() and add a unit test file for pstats.
Georg Brandl [Mon, 21 Jan 2008 10:24:59 +0000 (10:24 +0000)]
#1269: fix a bug in pstats.add_callers() and add a unit test file for pstats.

17 years agoProvide a sanity check during PyThreadState_DeleteCurrent() and
Gregory P. Smith [Mon, 21 Jan 2008 07:11:11 +0000 (07:11 +0000)]
Provide a sanity check during PyThreadState_DeleteCurrent() and
PyThreadState_Delete() to avoid an infinite loop when the tstate list
is messed up and has somehow becomes circular and does not contain the
current thread.

I don't know how this happens but it does, *very* rarely.  On more than
one hardware platform.  I have not been able to reproduce it manually.

Attaching to a process where its happening: it has always been in an
infinite loop over a single element tstate list that is not the tstate
we're looking to delete.  It has been in t_bootstrap()'s call to
PyThreadState_DeleteCurrent() as a pthread is exiting.

17 years agoFix markup.
Georg Brandl [Sun, 20 Jan 2008 21:10:08 +0000 (21:10 +0000)]
Fix markup.

17 years ago#1219903: fix tp_richcompare docs.
Georg Brandl [Sun, 20 Jan 2008 19:48:40 +0000 (19:48 +0000)]
#1219903: fix tp_richcompare docs.

17 years agoAdd blurb about executable scripts on Windows. #760657.
Georg Brandl [Sun, 20 Jan 2008 19:40:58 +0000 (19:40 +0000)]
Add blurb about executable scripts on Windows. #760657.

17 years agoSwitch mmap from old Py_FindMethod to new PyObject_GenericGetAttr attribute access.
Georg Brandl [Sun, 20 Jan 2008 14:50:05 +0000 (14:50 +0000)]
Switch mmap from old Py_FindMethod to new PyObject_GenericGetAttr attribute access.
Fixes #1087735.

17 years ago#1876: fix typos in test_operator.
Georg Brandl [Sun, 20 Jan 2008 14:31:27 +0000 (14:31 +0000)]
#1876: fix typos in test_operator.

17 years agoFixed a wrong assumption in configure.in and Include/pyport.h. The is finite function...
Christian Heimes [Sun, 20 Jan 2008 14:28:28 +0000 (14:28 +0000)]
Fixed a wrong assumption in configure.in and Include/pyport.h. The is finite function is not called isfinite() but finite(). Sorry, my fault. :)

17 years agoFix test_pyclbr after urllib change.
Georg Brandl [Sun, 20 Jan 2008 14:20:02 +0000 (14:20 +0000)]
Fix test_pyclbr after urllib change.

17 years ago#1669: don't allow shutil.rmtree() to be called on a symlink.
Georg Brandl [Sun, 20 Jan 2008 14:17:42 +0000 (14:17 +0000)]
#1669: don't allow shutil.rmtree() to be called on a symlink.

17 years ago#1648: add sys.gettrace() and sys.getprofile().
Georg Brandl [Sun, 20 Jan 2008 13:59:46 +0000 (13:59 +0000)]
#1648: add sys.gettrace() and sys.getprofile().

17 years ago#652749: document the constants added to the builtins by site.py.
Georg Brandl [Sun, 20 Jan 2008 13:08:37 +0000 (13:08 +0000)]
#652749: document the constants added to the builtins by site.py.

17 years ago#799369: document possible sys.platform values.
Georg Brandl [Sun, 20 Jan 2008 12:57:47 +0000 (12:57 +0000)]
#799369: document possible sys.platform values.

17 years ago#1664522: in urllib, don't read non-existing directories in ftp mode,
Georg Brandl [Sun, 20 Jan 2008 12:18:17 +0000 (12:18 +0000)]
#1664522: in urllib, don't read non-existing directories in ftp mode,
returning a 0-byte file -- raise an IOError instead.
Original patch from Phil Knirsch.

17 years ago#856047: respect the ``no_proxy`` env var when checking for proxies
Georg Brandl [Sun, 20 Jan 2008 12:05:43 +0000 (12:05 +0000)]
#856047: respect the ``no_proxy`` env var when checking for proxies
in urllib and using the other ``_proxy`` env vars.
Original patch by Donovan Baarda.

17 years ago#1178141: add addinfourl.code to get http status code from urllib.
Georg Brandl [Sun, 20 Jan 2008 11:43:03 +0000 (11:43 +0000)]
#1178141: add addinfourl.code to get http status code from urllib.

17 years ago#1351692: in pprint, always call format() for dict and list items to enable
Georg Brandl [Sun, 20 Jan 2008 11:13:29 +0000 (11:13 +0000)]
#1351692: in pprint, always call format() for dict and list items to enable
custom formatting of contents via subclassing PrettyPrinter.

17 years agoDocument that zipfile decryption is insanely slow and fix a typo and
Gregory P. Smith [Sun, 20 Jan 2008 01:32:00 +0000 (01:32 +0000)]
Document that zipfile decryption is insanely slow and fix a typo and
blatant lie in a docstring (it is not useful for security regardless of
how you spell it).

17 years agonote for r60121
Gregory P. Smith [Sun, 20 Jan 2008 01:26:04 +0000 (01:26 +0000)]
note for r60121

17 years agoFix zipfile decryption. The check for validity only worked on one
Gregory P. Smith [Sun, 20 Jan 2008 01:21:03 +0000 (01:21 +0000)]
Fix zipfile decryption.  The check for validity only worked on one
type of encrypted zip files.  Files using extended local headers
needed to compare the check byte against different values.  (according
to reading the infozip unzip crypt.c source code)

Fixes issue1003.