This is a git
port of appengine-ndb-experiment
(a Mercurial
project). This was imported via
hg clone https://code.google.com/p/appengine-ndb-experiment/
# Checked out with tip at 1353:17ae1ecdc5b5
git clone git://repo.or.cz/fast-export.git
mkdir ndb-git && cd ndb-git
../fast-export/hg-fast-export.sh -r ../appengine-ndb-experiment/ --force
Note the use of --force
flag. This was due to an error:
Error: repository has at least one unnamed head: hg r1337
The repository has 6 heads:
$ hg heads
changeset: 1353:17ae1ecdc5b5
tag: tip
...
changeset: 1344:a430f38427b5
branch: sandbox2
...
changeset: 1337:bbc44fd8eb16
...
changeset: 1255:bde0c1ced129
branch: sandbox3
...
changeset: 1211:7de90cb76ece
branch: sandbox
...
changeset: 1210:2cd433a67f77
branch: r102
...
and indeed 1337
is not attached to a branch.
To deal with that, the following branch was created:
git branch bbc44fd8eb16 1f353fa384a87dcd18290b11df80041f0582f867
git checkout bbc44fd8eb16
git push origin bbc44fd8eb16
I also verified all the commits listed in .git/hg2git-marks
have been pushed in at least one of the remote branches:
$ git branch --remote
origin/bbc44fd8eb16
origin/drop-core
origin/master
origin/questionable-speedup
origin/r102
origin/sandbox
origin/sandbox2
origin/sandbox3
origin/structured-orphans
(UPDATE: As of SDK 1.6.4, NDB has reached status General Availability. Mentions of its experimental status in this file should be ignored.)
In this project I am developing a new, experimental datastore API for the Google App Engine Python runtime. I am doing this as a Google employee but using an open source development style as I believe this project will benefit from early user feedback.
Eventually, when the project is sufficiently mature, the code will (hopefully) become a standard component of the App Engine Python SDK and the Python runtime. Until then, however, the way to use this code is to check it out from the repository and copy it into your application.
Until the code is integrated into the SDK and runtime, I am not going to worry about backwards compatibility between versions of this experimental code. You are not required to check out the trunk, however I do not plan to fix bugs in older branches.
See the file LICENSE for the open source licensing conditions (which are the same as for the App Engine SDK).
--Guido van Rossum [email protected]
The code is structured into six subdirectories:
-
ndb
: This is the main code base. Notable submodules arekey.py
,model.py
,query.py
,eventloop.py
,tasklets.py
, andcontext.py
. For each modulefoo.py
there's a correspondingfoo_test.py
which contains unit tests for that module. -
demo
: This is where a demo App Engine application lives. Check out some of the handlers, e.g.guestbook.py
andmain.py
. -
benchmarks
: This contains scripts for benchmarking and torture testing the implementation. -
development_tools
: This contains helper modules to use while developing changes and working with the datastore backend. -
documentation_samples
: This contains samples used for public facing documentation. -
unused_test_scripts
: This contains out of date / unused scripts
The main directory contains some scripts and auxiliary files used for repository management and continuous integration.
To run the demo app on localhost:8080
, use
make serve
To run an interactive shell with ndb
already imported and some sample
classes defined, use
make repl
See the Makefile
for more details; run
make
for a help message.