Commit Graph

6637 Commits

Author SHA1 Message Date
Guido van Rossum 045e688f6f Patch submitted by Brad Howes (with one bug fixed by me): allow
arbitrary nested parens in a %(...)X style format.
#Also folded two lines and added more detail to the error message for
#unsupported format character.
1997-09-08 18:30:11 +00:00
Guido van Rossum 9905ef9669 Added support for __all__, which should be a list of modules to be
imported when the user says "from package import *".
1997-09-08 16:07:11 +00:00
Guido van Rossum c8bf884248 Added test for __all__. 1997-09-08 16:06:20 +00:00
Jack Jansen e632380b55 Dunno, rebinhexed? 1997-09-08 13:26:55 +00:00
Jack Jansen 8a99a8aa89 Preferences is a general module to get (and set) preferences in
resource files with various inheritence rules, parsers, etc.

pythonprefs uses this to create a single uniform interface to all
relevant python preferences.
1997-09-08 13:26:36 +00:00
Jack Jansen 447e01b04e Preference resource now has a version number 1997-09-08 13:24:54 +00:00
Jack Jansen 222c34edc6 Moved the include of macbuildno.h to getbuildinfo.c. Putting it here
resulted in full recompilation every time.
1997-09-08 13:24:23 +00:00
Jack Jansen 2e871e4f09 Added SysBeep 1997-09-08 13:23:19 +00:00
Jack Jansen 5b3c9717c4 The preference resource now has a version number 1997-09-08 13:22:49 +00:00
Jack Jansen ac62569fd0 sys.prefix and sys.exec_prefix are now set correctly. 1997-09-08 13:22:22 +00:00
Jack Jansen 80cf5a8c4c The python preference resource now has a version number, and
"optimize" has replaced "don't print".
1997-09-08 13:21:37 +00:00
Jack Jansen 3b3a287d12 Major overhaul: this is now little more than a user interface, the
preference handling code is in modules pythonprefs and preferences.
This should finally make it easier for someone (Just?) to write a
decent interface to preference setting, and it'll allow setting
initial sys.path and such from ConfigurePython.
1997-09-08 13:19:42 +00:00
Jack Jansen d0240837fc Run NumPy installer, if present.
Added a couple of splash screens to show what we're doing
1997-09-08 13:16:29 +00:00
Guido van Rossum 4cf4de5d11 Brought up to date with new options and env vars. 1997-09-08 04:06:15 +00:00
Guido van Rossum e8fd143b7e #Adapt the doc string to reality. 1997-09-08 02:47:46 +00:00
Guido van Rossum 6d911018f7 #Oops, missed a plat- prefix (for Lib/generic). 1997-09-08 02:31:17 +00:00
Guido van Rossum 7b877a9278 Some nits, added a whole section on what you could do with
metaclasses, and acks.
1997-09-08 02:20:57 +00:00
Guido van Rossum 7ca65abb2f Set it to 1.5a4, now we have dotted-name import... 1997-09-08 02:17:31 +00:00
Guido van Rossum 10499324cf Initialize self.__tempfiles to [] in the constructor (else it remains
a shared class variable -- but each instance will attempt to clean it
up entirely ob cleanup).
1997-09-08 02:16:33 +00:00
Guido van Rossum 62b297b698 Change packages -> site-packages 1997-09-08 02:14:09 +00:00
Guido van Rossum d6ead328b3 *Semantic change*: when unpickling the instance variables of an
instance, use inst.__dict__.update(value) instead of a for loop with
setattr() over the value.keys().  This is more consistent (the
pickling doesn't use getattr() either but pickles inst.__dict__) and
avoids problems with instances that have a __setattr__ hook.

But it *is* a semantic change (because the setattr hook is no longer
used).  So beware!
1997-09-08 02:08:11 +00:00
Guido van Rossum 75626a3b93 Indent the #error so that a strict K&R cpp doesn't complain. 1997-09-08 02:04:00 +00:00
Guido van Rossum 9cf4e2bde7 Change packages to site-packages (so it's clearly not a package itself). 1997-09-08 02:02:37 +00:00
Guido van Rossum bbd6152fec Prefix MACHDEP directory with 'plat-'. 1997-09-08 01:56:35 +00:00
Guido van Rossum ab61c6b290 Change the names of the subdirectories tkinter and stdwin to
lib-tk and lib-stdwin.  (BTW this was also done in the previous
checkin of (toplevel)/Makefile.in, though not noted in the checkin
message.)
1997-09-08 01:54:43 +00:00
Guido van Rossum 38bbbc733f Forgot to install the test/output directory! 1997-09-08 01:51:23 +00:00
Guido van Rossum eeadc04200 Look for uuencoded test files in the directory containing this module, too.
(This is necessary because when imported as test.test_rgbimg, the test
directory is not on sys.path.)
1997-09-07 16:54:34 +00:00
Guido van Rossum bc8b2bd95e Look for uuencoded test files in the directory containing this module, too.
(This is necessary because when imported as test.test_rgbimg, the test
directory is not on sys.path.)
1997-09-07 16:50:45 +00:00
Guido van Rossum 970f5d33c7 Reverse the order in which Setup and Setup.local are passed to the
makesetup script.  (Sorry Sjoerd -- I know you proposed this a while
ago and I didn't think it would work then.  I looked again and it
does work.)
1997-09-07 16:44:37 +00:00
Guido van Rossum f9fa20b2d2 Pass optional arguments (globals(), locals(), []) to __import__() so
it will run as package test, e.g. this will run the test suite:

    import test.regrtest
    test.regrtest.main()
1997-09-07 16:42:34 +00:00
Guido van Rossum 0c81945808 Bugfix: import A.B from inside package was busted by mark_miss optimization. 1997-09-07 06:16:57 +00:00
Guido van Rossum 10887a3067 Fix details in the test:
- traceback should go to stdout!
- don't import ni, import t1!
- nicer support for command line options, only if run as __main__
1997-09-07 06:12:11 +00:00
Guido van Rossum 16221126d6 Added warning about ni's obsolescence. Retracted semantic changes
(i.e. when using ni, the old __init__.py semantics prevail!)
1997-09-07 03:02:39 +00:00
Guido van Rossum 593801142e Initial revision 1997-09-07 02:56:35 +00:00
Guido van Rossum f5f5fdbdd0 Significant speedup -- when a submodule imports a global module, add a
dummy entry to sys.modules, marking the absence of a submodule by the
same name.

Thus, if module foo.bar executes the statement "import time",
sys.modules['foo.time'] will be set to None, once the absence of a
module foo.time is confirmed (by looking for it in foo's path).

The next time when foo.bar (or any other submodule of foo) executes
"import time", no I/O is necessary to determine that there is no
module foo.time.

(Justification: It may seem strange to pollute sys.modules.  However,
since we're doing the lookup anyway it's definitely the fastest
solution.  This is the same convention that 'ni' uses and I haven't
heard any complaints.)
1997-09-06 20:29:52 +00:00
Guido van Rossum 81da02e6aa Added feeble test for reload() of packages and submodules. 1997-09-06 19:58:53 +00:00
Guido van Rossum 222ef56bbf Fix reload() for package submodules. 1997-09-06 19:41:09 +00:00
Guido van Rossum 17fc85f2f5 Phase two of package import. "import a.b.c" and all variants now do the
right thing.

Still to do:

- Make reload() of a submodule work.

- Performance tweaks -- currently, a submodule that tries to import a
global module *always* searches the package directory first, even if
the global module was already imported.  Not sure how to solve this
one; probably need to record misses per package.

- Documentation!
1997-09-06 18:52:03 +00:00
Guido van Rossum 114c1eabbb #Added prototype for PyObject_HasAttr() -- must've been an oversight. 1997-09-06 18:44:59 +00:00
Guido van Rossum 6c61242c78 Test set for package import. 1997-09-06 18:42:57 +00:00
Guido van Rossum d6bf45bcf6 Fixed some details of printing the str() of an exception. This fixes
a core dump when __str__() returns a non-string, and plugs a memory
leak as well: the result of PyObject_Str() was never DECREFed.
1997-09-05 19:11:53 +00:00
Guido van Rossum f394f56c2b Made the 'info' argument to SyntaxError optional, so phase-2 syntax
errors are handled (these gave ``TypeError: not enough arguments'').

Also changed its __str__() to correct a typo (missing self.) and
return str(self.msg) to ensure the result is always string.

Also changed the default __str__ to simply return str(self.args).
1997-09-05 19:00:56 +00:00
Fred Drake 49bb0e32a0 Fix in trailing comment: PyDict_SetItemString() does *not* consume a reference
count, PyList_SetItem() does.  Very confusing!
1997-09-05 17:53:53 +00:00
Guido van Rossum aee0bad0a5 First part of package support.
This doesn't yet support "import a.b.c" or "from a.b.c import x", but
it does recognize directories.  When importing a directory, it
initializes __path__ to a list containing the directory name, and
loads the __init__ module if found.

The (internal) find_module() and load_module() functions are
restructured so that they both also handle built-in and frozen modules
and Mac resources (and directories of course).  The imp module's
find_module() and (new) load_module() also have this functionality.
Moreover, imp unconditionally defines constants for all module types,
and has two more new functions: find_module_in_package() and
find_module_in_directory().

There's also a new API function, PyImport_ImportModuleEx(), which
takes all four __import__ arguments (name, globals, locals, fromlist).
The last three may be NULL.  This is currently the same as
PyImport_ImportModule() but in the future it will be able to do
relative dotted-path imports.

Other changes:

- bltinmodule.c: in __import__, call PyImport_ImportModuleEx().

- ceval.c: always pass the fromlist to __import__, even if it is a C
function, so PyImport_ImportModuleEx() is useful.

- getmtime.c: the function has a second argument, the FILE*, on which
it applies fstat().  According to Sjoerd this is much faster.  The
first (pathname) argument is ignored, but remains for backward
compatibility (so the Mac version still works without changes).

By cleverly combining the new imp functionality, the full support for
dotted names in Python (mini.py, not checked in) is now about 7K,
lavishly commented (vs. 14K for ni plus 11K for ihooks, also lavishly
commented).

Good night!
1997-09-05 07:33:22 +00:00
Guido van Rossum 026de19906 Added PyImport_ImportModuleEx(name, globals, locals, fromlist); this
is like PyImport_ImporModule(name) but receives the globals and locals
dict and the fromlist arguments as well.  (The name is a char*; the
others are PyObject*s).
1997-09-05 07:11:32 +00:00
Guido van Rossum 9eb671fac3 Contribution by Hannu Krosing (with some changes).
Added 'p' format character for Pascal string (i.e. leading length
byte).  This uses the count prefix line 's' does, except that the
count includes the length byte; i.e. '10p' takes 10 bytes packed but
has space for a length byte and 9 data bytes.
1997-09-05 07:08:39 +00:00
Guido van Rossum bd4435abcc Don't use ANSI string literal concatenation (everything is K&R compatible). 1997-09-05 07:01:19 +00:00
Guido van Rossum 8102c005e0 Get rid of most silly #include and #ifdefs near the top; these are all
obsolete now it includes Python.h.

Make all functions K&R compatible (Sue Williams).
1997-09-05 01:48:48 +00:00
Jeremy Hylton 6459627b12 Now produces some reassuring output. 1997-09-04 23:42:01 +00:00
Jeremy Hylton 9dc2b8ee07 Many more tests, including tests of many optional arguments. 1997-09-04 23:41:37 +00:00