summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/acquire-item.cc10
-rw-r--r--python/acquire.cc14
-rw-r--r--python/apt_pkgmodule.cc68
-rw-r--r--python/arfile.cc12
-rw-r--r--python/cache.cc44
-rw-r--r--python/configuration.cc2
-rw-r--r--python/depcache.cc12
-rw-r--r--python/generic.h16
-rw-r--r--python/indexfile.cc2
-rw-r--r--python/indexrecords.cc2
-rw-r--r--python/pkgmanager.cc2
-rw-r--r--python/pkgsrcrecords.cc10
-rw-r--r--python/policy.cc2
-rw-r--r--python/progress.cc60
-rw-r--r--python/string.cc4
-rw-r--r--python/tag.cc5
-rw-r--r--python/tarfile.cc14
17 files changed, 149 insertions, 130 deletions
diff --git a/python/acquire-item.cc b/python/acquire-item.cc
index 895d4a21..5e7423ab 100644
--- a/python/acquire-item.cc
+++ b/python/acquire-item.cc
@@ -65,13 +65,13 @@ static PyObject *acquireitem_get_error_text(PyObject *self, void *closure)
static PyObject *acquireitem_get_filesize(PyObject *self, void *closure)
{
pkgAcquire::Item *item = acquireitem_tocpp(self);
- return item ? Py_BuildValue("K", item->FileSize) : 0;
+ return item ? MkPyNumber(item->FileSize) : 0;
}
static PyObject *acquireitem_get_id(PyObject *self, void *closure)
{
pkgAcquire::Item *item = acquireitem_tocpp(self);
- return item ? Py_BuildValue("k", item->ID) : 0;
+ return item ? MkPyNumber(item->ID) : 0;
}
static PyObject *acquireitem_get_mode(PyObject *self, void *closure)
@@ -95,13 +95,13 @@ static PyObject *acquireitem_get_local(PyObject *self, void *closure)
static PyObject *acquireitem_get_partialsize(PyObject *self, void *closure)
{
pkgAcquire::Item *item = acquireitem_tocpp(self);
- return item ? Py_BuildValue("K", item->PartialSize) : 0;
+ return item ? MkPyNumber(item->PartialSize) : 0;
}
static PyObject *acquireitem_get_status(PyObject *self, void *closure)
{
pkgAcquire::Item *item = acquireitem_tocpp(self);
- return item ? Py_BuildValue("i", item->Status) : 0;
+ return item ? MkPyNumber(item->Status) : 0;
}
static int acquireitem_set_id(PyObject *self, PyObject *value, void *closure)
@@ -110,7 +110,7 @@ static int acquireitem_set_id(PyObject *self, PyObject *value, void *closure)
if (Itm == 0)
return -1;
if (PyLong_Check(value)) {
- Itm->ID = PyLong_AsLong(value);
+ Itm->ID = PyLong_AsUnsignedLong(value);
}
else if (PyInt_Check(value)) {
Itm->ID = PyInt_AsLong(value);
diff --git a/python/acquire.cc b/python/acquire.cc
index ab90bbdd..6169ff40 100644
--- a/python/acquire.cc
+++ b/python/acquire.cc
@@ -51,17 +51,17 @@ static PyObject *acquireworker_get_status(PyObject *self, void *closure)
static PyObject *acquireworker_get_current_size(PyObject *self, void *closure)
{
- return Py_BuildValue("k",GetCpp<pkgAcquire::Worker*>(self)->CurrentSize);
+ return MkPyNumber(GetCpp<pkgAcquire::Worker*>(self)->CurrentSize);
}
static PyObject *acquireworker_get_total_size(PyObject *self, void *closure)
{
- return Py_BuildValue("k",GetCpp<pkgAcquire::Worker*>(self)->TotalSize);
+ return MkPyNumber(GetCpp<pkgAcquire::Worker*>(self)->TotalSize);
}
static PyObject *acquireworker_get_resumepoint(PyObject *self, void *closure)
{
- return Py_BuildValue("k",GetCpp<pkgAcquire::Worker*>(self)->ResumePoint);
+ return MkPyNumber(GetCpp<pkgAcquire::Worker*>(self)->ResumePoint);
}
static PyGetSetDef acquireworker_getset[] = {
@@ -225,7 +225,7 @@ static PyObject *PkgAcquireRun(PyObject *Self,PyObject *Args)
pkgAcquire::RunResult run = fetcher->Run(pulseInterval);
- return HandleErrors(Py_BuildValue("i",run));
+ return HandleErrors(MkPyNumber(run));
}
@@ -259,15 +259,15 @@ static PyMethodDef PkgAcquireMethods[] = {
#define fetcher (GetCpp<pkgAcquire*>(Self))
static PyObject *PkgAcquireGetTotalNeeded(PyObject *Self,void*)
{
- return Py_BuildValue("L", fetcher->TotalNeeded());
+ return MkPyNumber(fetcher->TotalNeeded());
}
static PyObject *PkgAcquireGetFetchNeeded(PyObject *Self,void*)
{
- return Py_BuildValue("L", fetcher->FetchNeeded());
+ return MkPyNumber(fetcher->FetchNeeded());
}
static PyObject *PkgAcquireGetPartialPresent(PyObject *Self,void*)
{
- return Py_BuildValue("L", fetcher->PartialPresent());
+ return MkPyNumber(fetcher->PartialPresent());
}
#undef fetcher
diff --git a/python/apt_pkgmodule.cc b/python/apt_pkgmodule.cc
index 0fac664b..2394b0f8 100644
--- a/python/apt_pkgmodule.cc
+++ b/python/apt_pkgmodule.cc
@@ -83,7 +83,7 @@ static PyObject *VersionCompare(PyObject *Self,PyObject *Args)
return 0;
}
- return Py_BuildValue("i",_system->VS->DoCmpVersion(A,A+LenA,B,B+LenB));
+ return MkPyNumber(_system->VS->DoCmpVersion(A,A+LenA,B,B+LenB));
}
static char *doc_CheckDep =
@@ -459,7 +459,7 @@ static PyObject *GetLock(PyObject *Self,PyObject *Args)
int fd = GetLock(file, errors);
- return HandleErrors(Py_BuildValue("i", fd));
+ return HandleErrors(MkPyNumber(fd));
}
static char *doc_PkgSystemLock =
@@ -854,82 +854,82 @@ extern "C" void initapt_pkg()
// Acquire constants.
// some constants
PyDict_SetItemString(PyAcquire_Type.tp_dict, "RESULT_CANCELLED",
- Py_BuildValue("i", pkgAcquire::Cancelled));
+ MkPyNumber(pkgAcquire::Cancelled));
PyDict_SetItemString(PyAcquire_Type.tp_dict, "RESULT_CONTINUE",
- Py_BuildValue("i", pkgAcquire::Continue));
+ MkPyNumber(pkgAcquire::Continue));
PyDict_SetItemString(PyAcquire_Type.tp_dict, "RESULT_FAILED",
- Py_BuildValue("i", pkgAcquire::Failed));
+ MkPyNumber(pkgAcquire::Failed));
#ifdef COMPAT_0_7
PyDict_SetItemString(PyAcquire_Type.tp_dict, "ResultCancelled",
- Py_BuildValue("i", pkgAcquire::Cancelled));
+ MkPyNumber(pkgAcquire::Cancelled));
PyDict_SetItemString(PyAcquire_Type.tp_dict, "ResultContinue",
- Py_BuildValue("i", pkgAcquire::Continue));
+ MkPyNumber(pkgAcquire::Continue));
PyDict_SetItemString(PyAcquire_Type.tp_dict, "ResultFailed",
- Py_BuildValue("i", pkgAcquire::Failed));
+ MkPyNumber(pkgAcquire::Failed));
#endif
// Dependency constants
PyDict_SetItemString(PyDependency_Type.tp_dict, "TYPE_DEPENDS",
- Py_BuildValue("i", pkgCache::Dep::Depends));
+ MkPyNumber(pkgCache::Dep::Depends));
PyDict_SetItemString(PyDependency_Type.tp_dict, "TYPE_PREDEPENDS",
- Py_BuildValue("i", pkgCache::Dep::PreDepends));
+ MkPyNumber(pkgCache::Dep::PreDepends));
PyDict_SetItemString(PyDependency_Type.tp_dict, "TYPE_SUGGESTS",
- Py_BuildValue("i", pkgCache::Dep::Suggests));
+ MkPyNumber(pkgCache::Dep::Suggests));
PyDict_SetItemString(PyDependency_Type.tp_dict, "TYPE_RECOMMENDS",
- Py_BuildValue("i", pkgCache::Dep::Suggests));
+ MkPyNumber(pkgCache::Dep::Suggests));
PyDict_SetItemString(PyDependency_Type.tp_dict, "TYPE_CONFLICTS",
- Py_BuildValue("i", pkgCache::Dep::Conflicts));
+ MkPyNumber(pkgCache::Dep::Conflicts));
PyDict_SetItemString(PyDependency_Type.tp_dict, "TYPE_REPLACES",
- Py_BuildValue("i", pkgCache::Dep::Replaces));
+ MkPyNumber(pkgCache::Dep::Replaces));
PyDict_SetItemString(PyDependency_Type.tp_dict, "TYPE_OBSOLETES",
- Py_BuildValue("i", pkgCache::Dep::Obsoletes));
+ MkPyNumber(pkgCache::Dep::Obsoletes));
PyDict_SetItemString(PyDependency_Type.tp_dict, "TYPE_DPKG_BREAKS",
- Py_BuildValue("i", pkgCache::Dep::DpkgBreaks));
+ MkPyNumber(pkgCache::Dep::DpkgBreaks));
PyDict_SetItemString(PyDependency_Type.tp_dict, "TYPE_ENHANCES",
- Py_BuildValue("i", pkgCache::Dep::Enhances));
+ MkPyNumber(pkgCache::Dep::Enhances));
// PackageManager constants
PyDict_SetItemString(PyPackageManager_Type.tp_dict, "RESULT_COMPLETED",
- Py_BuildValue("i", pkgPackageManager::Completed));
+ MkPyNumber(pkgPackageManager::Completed));
PyDict_SetItemString(PyPackageManager_Type.tp_dict, "RESULT_FAILED",
- Py_BuildValue("i", pkgPackageManager::Failed));
+ MkPyNumber(pkgPackageManager::Failed));
PyDict_SetItemString(PyPackageManager_Type.tp_dict, "RESULT_INCOMPLETE",
- Py_BuildValue("i", pkgPackageManager::Incomplete));
+ MkPyNumber(pkgPackageManager::Incomplete));
#ifdef COMPAT_0_7
PyDict_SetItemString(PyPackageManager_Type.tp_dict, "ResultCompleted",
- Py_BuildValue("i", pkgPackageManager::Completed));
+ MkPyNumber(pkgPackageManager::Completed));
PyDict_SetItemString(PyPackageManager_Type.tp_dict, "ResultFailed",
- Py_BuildValue("i", pkgPackageManager::Failed));
+ MkPyNumber(pkgPackageManager::Failed));
PyDict_SetItemString(PyPackageManager_Type.tp_dict, "ResultIncomplete",
- Py_BuildValue("i", pkgPackageManager::Incomplete));
+ MkPyNumber(pkgPackageManager::Incomplete));
#endif
// AcquireItem Constants.
PyDict_SetItemString(PyAcquireItem_Type.tp_dict, "STAT_IDLE",
- Py_BuildValue("i", pkgAcquire::Item::StatIdle));
+ MkPyNumber(pkgAcquire::Item::StatIdle));
PyDict_SetItemString(PyAcquireItem_Type.tp_dict, "STAT_FETCHING",
- Py_BuildValue("i", pkgAcquire::Item::StatFetching));
+ MkPyNumber(pkgAcquire::Item::StatFetching));
PyDict_SetItemString(PyAcquireItem_Type.tp_dict, "STAT_DONE",
- Py_BuildValue("i", pkgAcquire::Item::StatDone));
+ MkPyNumber(pkgAcquire::Item::StatDone));
PyDict_SetItemString(PyAcquireItem_Type.tp_dict, "STAT_TRANSIENT_NETWORK_ERROR",
- Py_BuildValue("i", pkgAcquire::Item::StatTransientNetworkError));
+ MkPyNumber(pkgAcquire::Item::StatTransientNetworkError));
PyDict_SetItemString(PyAcquireItem_Type.tp_dict, "STAT_ERROR",
- Py_BuildValue("i", pkgAcquire::Item::StatError));
+ MkPyNumber(pkgAcquire::Item::StatError));
PyDict_SetItemString(PyAcquireItem_Type.tp_dict, "STAT_AUTH_ERROR",
- Py_BuildValue("i", pkgAcquire::Item::StatAuthError));
+ MkPyNumber(pkgAcquire::Item::StatAuthError));
#ifdef COMPAT_0_7
PyDict_SetItemString(PyAcquireItem_Type.tp_dict, "StatIdle",
- Py_BuildValue("i", pkgAcquire::Item::StatIdle));
+ MkPyNumber(pkgAcquire::Item::StatIdle));
PyDict_SetItemString(PyAcquireItem_Type.tp_dict, "StatFetching",
- Py_BuildValue("i", pkgAcquire::Item::StatFetching));
+ MkPyNumber(pkgAcquire::Item::StatFetching));
PyDict_SetItemString(PyAcquireItem_Type.tp_dict, "StatDone",
- Py_BuildValue("i", pkgAcquire::Item::StatDone));
+ MkPyNumber(pkgAcquire::Item::StatDone));
PyDict_SetItemString(PyAcquireItem_Type.tp_dict, "StatError",
- Py_BuildValue("i", pkgAcquire::Item::StatError));
+ MkPyNumber(pkgAcquire::Item::StatError));
PyDict_SetItemString(PyAcquireItem_Type.tp_dict, "StatAuthError",
- Py_BuildValue("i", pkgAcquire::Item::StatAuthError));
+ MkPyNumber(pkgAcquire::Item::StatAuthError));
#endif
#if PY_MAJOR_VERSION >= 3 && PY_MINOR_VERSION >= 1
diff --git a/python/arfile.cc b/python/arfile.cc
index 5377ca8d..c3aa74d1 100644
--- a/python/arfile.cc
+++ b/python/arfile.cc
@@ -39,32 +39,32 @@ static PyObject *armember_get_name(PyObject *self, void *closure)
static PyObject *armember_get_mtime(PyObject *self, void *closure)
{
- return Py_BuildValue("k", GetCpp<ARArchive::Member*>(self)->MTime);
+ return MkPyNumber(GetCpp<ARArchive::Member*>(self)->MTime);
}
static PyObject *armember_get_uid(PyObject *self, void *closure)
{
- return Py_BuildValue("k", GetCpp<ARArchive::Member*>(self)->UID);
+ return MkPyNumber(GetCpp<ARArchive::Member*>(self)->UID);
}
static PyObject *armember_get_gid(PyObject *self, void *closure)
{
- return Py_BuildValue("k", GetCpp<ARArchive::Member*>(self)->GID);
+ return MkPyNumber(GetCpp<ARArchive::Member*>(self)->GID);
}
static PyObject *armember_get_mode(PyObject *self, void *closure)
{
- return Py_BuildValue("k", GetCpp<ARArchive::Member*>(self)->Mode);
+ return MkPyNumber(GetCpp<ARArchive::Member*>(self)->Mode);
}
static PyObject *armember_get_size(PyObject *self, void *closure)
{
- return Py_BuildValue("k", GetCpp<ARArchive::Member*>(self)->Size);
+ return MkPyNumber(GetCpp<ARArchive::Member*>(self)->Size);
}
static PyObject *armember_get_start(PyObject *self, void *closure)
{
- return Py_BuildValue("k", GetCpp<ARArchive::Member*>(self)->Start);
+ return MkPyNumber(GetCpp<ARArchive::Member*>(self)->Start);
}
static PyObject *armember_repr(PyObject *self)
diff --git a/python/cache.cc b/python/cache.cc
index a27bf6f5..160fd208 100644
--- a/python/cache.cc
+++ b/python/cache.cc
@@ -221,7 +221,7 @@ static PyMethodDef PkgCacheMethods[] =
static PyObject *PkgCacheGetGroupCount(PyObject *Self, void*) {
pkgCache *Cache = GetCpp<pkgCache *>(Self);
- return Py_BuildValue("i",Cache->HeaderP->GroupCount);
+ return MkPyNumber(Cache->HeaderP->GroupCount);
}
static PyObject *PkgCacheGetGroups(PyObject *Self, void*) {
@@ -236,31 +236,31 @@ static PyObject *PkgCacheGetPackages(PyObject *Self, void*) {
static PyObject *PkgCacheGetPackageCount(PyObject *Self, void*) {
pkgCache *Cache = GetCpp<pkgCache *>(Self);
- return Py_BuildValue("i",Cache->HeaderP->PackageCount);
+ return MkPyNumber((int)Cache->HeaderP->PackageCount);
}
static PyObject *PkgCacheGetVersionCount(PyObject *Self, void*) {
pkgCache *Cache = GetCpp<pkgCache *>(Self);
- return Py_BuildValue("i",Cache->HeaderP->VersionCount);
+ return MkPyNumber(Cache->HeaderP->VersionCount);
}
static PyObject *PkgCacheGetDependsCount(PyObject *Self, void*) {
pkgCache *Cache = GetCpp<pkgCache *>(Self);
- return Py_BuildValue("i",Cache->HeaderP->DependsCount);
+ return MkPyNumber(Cache->HeaderP->DependsCount);
}
static PyObject *PkgCacheGetPackageFileCount(PyObject *Self, void*) {
pkgCache *Cache = GetCpp<pkgCache *>(Self);
- return Py_BuildValue("i",Cache->HeaderP->PackageFileCount);
+ return MkPyNumber(Cache->HeaderP->PackageFileCount);
}
static PyObject *PkgCacheGetVerFileCount(PyObject *Self, void*) {
pkgCache *Cache = GetCpp<pkgCache *>(Self);
- return Py_BuildValue("i",Cache->HeaderP->VerFileCount);
+ return MkPyNumber(Cache->HeaderP->VerFileCount);
}
static PyObject *PkgCacheGetProvidesCount(PyObject *Self, void*) {
pkgCache *Cache = GetCpp<pkgCache *>(Self);
- return Py_BuildValue("i",Cache->HeaderP->ProvidesCount);
+ return MkPyNumber(Cache->HeaderP->ProvidesCount);
}
static PyObject *PkgCacheGetFileList(PyObject *Self, void*) {
@@ -637,10 +637,10 @@ MkGet(PackageGetSection,Safe_FromString(Pkg.Section()))
MkGet(PackageGetRevDependsList,CppPyObject_NEW<RDepListStruct>(Owner,
&PyDependencyList_Type, Pkg.RevDependsList()))
MkGet(PackageGetProvidesList,CreateProvides(Owner,Pkg.ProvidesList()))
-MkGet(PackageGetSelectedState,Py_BuildValue("i",Pkg->SelectedState))
-MkGet(PackageGetInstState,Py_BuildValue("i",Pkg->InstState))
-MkGet(PackageGetCurrentState,Py_BuildValue("i",Pkg->CurrentState))
-MkGet(PackageGetID,Py_BuildValue("i",Pkg->ID))
+MkGet(PackageGetSelectedState,MkPyNumber(Pkg->SelectedState))
+MkGet(PackageGetInstState,MkPyNumber(Pkg->InstState))
+MkGet(PackageGetCurrentState,MkPyNumber(Pkg->CurrentState))
+MkGet(PackageGetID,MkPyNumber(Pkg->ID))
#
MkGet(PackageGetAuto,PyBool_FromLong((Pkg->Flags & pkgCache::Flag::Auto) != 0))
MkGet(PackageGetEssential,PyBool_FromLong((Pkg->Flags & pkgCache::Flag::Essential) != 0))
@@ -837,7 +837,7 @@ static PyObject *DescriptionGetFileList(PyObject *Self,void*)
PyObject *DescFile;
PyObject *Obj;
DescFile = CppPyObject_NEW<pkgCache::PkgFileIterator>(Owner,&PyPackageFile_Type,I.File());
- Obj = Py_BuildValue("Nl",DescFile,I.Index());
+ Obj = Py_BuildValue("NN",DescFile,MkPyNumber(I.Index()));
PyList_Append(List,Obj);
Py_DECREF(Obj);
}
@@ -992,7 +992,7 @@ static PyObject *VersionGetFileList(PyObject *Self, void*) {
PyObject *PkgFile;
PyObject *Obj;
PkgFile = CppPyObject_NEW<pkgCache::PkgFileIterator>(Owner,&PyPackageFile_Type,I.File());
- Obj = Py_BuildValue("Nl",PkgFile,I.Index());
+ Obj = Py_BuildValue("NN",PkgFile,MkPyNumber(I.Index()));
PyList_Append(List,Obj);
Py_DECREF(Obj);
}
@@ -1019,19 +1019,19 @@ static PyObject *VersionGetProvidesList(PyObject *Self, void*) {
return CreateProvides(Owner,Version_GetVer(Self).ProvidesList());
}
static PyObject *VersionGetSize(PyObject *Self, void*) {
- return Py_BuildValue("i", Version_GetVer(Self)->Size);
+ return MkPyNumber(Version_GetVer(Self)->Size);
}
static PyObject *VersionGetInstalledSize(PyObject *Self, void*) {
- return Py_BuildValue("i", Version_GetVer(Self)->InstalledSize);
+ return MkPyNumber(Version_GetVer(Self)->InstalledSize);
}
static PyObject *VersionGetHash(PyObject *Self, void*) {
- return Py_BuildValue("i", Version_GetVer(Self)->Hash);
+ return MkPyNumber(Version_GetVer(Self)->Hash);
}
static PyObject *VersionGetID(PyObject *Self, void*) {
- return Py_BuildValue("i", Version_GetVer(Self)->ID);
+ return MkPyNumber(Version_GetVer(Self)->ID);
}
static PyObject *VersionGetPriority(PyObject *Self, void*) {
- return Py_BuildValue("i",Version_GetVer(Self)->Priority);
+ return MkPyNumber(Version_GetVer(Self)->Priority);
}
static PyObject *VersionGetPriorityStr(PyObject *Self, void*) {
return Safe_FromString(Version_GetVer(Self).PriorityType());
@@ -1241,7 +1241,7 @@ static PyObject *PackageFile_GetIndexType(PyObject *Self,void*)
static PyObject *PackageFile_GetSize(PyObject *Self,void*)
{
pkgCache::PkgFileIterator &File = GetCpp<pkgCache::PkgFileIterator>(Self);
- return Py_BuildValue("i",File->Size);
+ return MkPyNumber(File->Size);
}
static PyObject *PackageFile_GetNotSource(PyObject *Self,void*)
@@ -1258,7 +1258,7 @@ static PyObject *PackageFile_GetNotAutomatic(PyObject *Self,void*)
static PyObject *PackageFile_GetID(PyObject *Self,void*)
{
pkgCache::PkgFileIterator &File = GetCpp<pkgCache::PkgFileIterator>(Self);
- return Py_BuildValue("i",File->ID);
+ return MkPyNumber(File->ID);
}
#define S(s) (s == NULL ? "" : s)
@@ -1467,13 +1467,13 @@ static PyObject *DependencyGetDepTypeUntranslated(PyObject *Self,void*)
static PyObject *DependencyGetDepTypeEnum(PyObject *Self,void*)
{
pkgCache::DepIterator &Dep = GetCpp<pkgCache::DepIterator>(Self);
- return Py_BuildValue("i", Dep->Type);
+ return MkPyNumber(Dep->Type);
}
static PyObject *DependencyGetID(PyObject *Self,void*)
{
pkgCache::DepIterator &Dep = GetCpp<pkgCache::DepIterator>(Self);
- return Py_BuildValue("i",Dep->ID);
+ return MkPyNumber(Dep->ID);
}
static PyGetSetDef DependencyGetSet[] = {
diff --git a/python/configuration.cc b/python/configuration.cc
index b6a44b44..9000f71f 100644
--- a/python/configuration.cc
+++ b/python/configuration.cc
@@ -92,7 +92,7 @@ static PyObject *CnfFindI(PyObject *Self,PyObject *Args)
int Default = 0;
if (PyArg_ParseTuple(Args,"s|i",&Name,&Default) == 0)
return 0;
- return Py_BuildValue("i",GetSelf(Self).FindI(Name,Default));
+ return MkPyNumber(GetSelf(Self).FindI(Name,Default));
}
static const char *doc_FindB =
diff --git a/python/depcache.cc b/python/depcache.cc
index 12c13a73..e6113429 100644
--- a/python/depcache.cc
+++ b/python/depcache.cc
@@ -668,22 +668,22 @@ static PyMethodDef PkgDepCacheMethods[] =
#define depcache (GetCpp<pkgDepCache *>(Self))
static PyObject *PkgDepCacheGetKeepCount(PyObject *Self,void*) {
- return Py_BuildValue("l", depcache->KeepCount());
+ return MkPyNumber(depcache->KeepCount());
}
static PyObject *PkgDepCacheGetInstCount(PyObject *Self,void*) {
- return Py_BuildValue("l", depcache->InstCount());
+ return MkPyNumber(depcache->InstCount());
}
static PyObject *PkgDepCacheGetDelCount(PyObject *Self,void*) {
- return Py_BuildValue("l", depcache->DelCount());
+ return MkPyNumber(depcache->DelCount());
}
static PyObject *PkgDepCacheGetBrokenCount(PyObject *Self,void*) {
- return Py_BuildValue("l", depcache->BrokenCount());
+ return MkPyNumber(depcache->BrokenCount());
}
static PyObject *PkgDepCacheGetUsrSize(PyObject *Self,void*) {
- return Py_BuildValue("L", depcache->UsrSize());
+ return MkPyNumber(depcache->UsrSize());
}
static PyObject *PkgDepCacheGetDebSize(PyObject *Self,void*) {
- return Py_BuildValue("L", depcache->DebSize());
+ return MkPyNumber(depcache->DebSize());
}
#undef depcache
diff --git a/python/generic.h b/python/generic.h
index ce9e5091..f9680ca5 100644
--- a/python/generic.h
+++ b/python/generic.h
@@ -57,6 +57,7 @@ typedef int Py_ssize_t;
#define PyString_Type PyUnicode_Type
#define PyInt_Check PyLong_Check
#define PyInt_AsLong PyLong_AsLong
+#define PyInt_FromLong PyLong_FromLong
// Force 0.7 compatibility to be off in Python 3 builds
#undef COMPAT_0_7
#else
@@ -231,6 +232,21 @@ PyObject *HandleErrors(PyObject *Res = 0);
const char **ListToCharChar(PyObject *List,bool NullTerm = false);
PyObject *CharCharToList(const char **List,unsigned long Size = 0);
+/* Happy number conversion, thanks to overloading */
+inline PyObject *MkPyNumber(unsigned long long o) { return PyLong_FromUnsignedLongLong(o); }
+inline PyObject *MkPyNumber(unsigned long o) { return PyLong_FromUnsignedLong(o); }
+inline PyObject *MkPyNumber(unsigned int o) { return PyLong_FromUnsignedLong(o); }
+inline PyObject *MkPyNumber(unsigned short o) { return PyInt_FromLong(o); }
+inline PyObject *MkPyNumber(unsigned char o) { return PyInt_FromLong(o); }
+
+inline PyObject *MkPyNumber(long long o) { return PyLong_FromLongLong(o); }
+inline PyObject *MkPyNumber(long o) { return PyInt_FromLong(o); }
+inline PyObject *MkPyNumber(int o) { return PyInt_FromLong(o); }
+inline PyObject *MkPyNumber(short o) { return PyInt_FromLong(o); }
+inline PyObject *MkPyNumber(char o) { return PyInt_FromLong(o); }
+
+inline PyObject *MkPyNumber(double o) { return PyFloat_FromDouble(o); }
+
# ifdef COMPAT_0_7
PyObject *_PyAptObject_getattro(PyObject *self, PyObject *attr);
# else
diff --git a/python/indexfile.cc b/python/indexfile.cc
index 037be210..bf0df516 100644
--- a/python/indexfile.cc
+++ b/python/indexfile.cc
@@ -47,7 +47,7 @@ static PyObject *IndexFileGetHasPackages(PyObject *Self,void*) {
return PyBool_FromLong((File->HasPackages()));
}
static PyObject *IndexFileGetSize(PyObject *Self,void*) {
- return Py_BuildValue("i",(File->Size()));
+ return MkPyNumber((File->Size()));
}
static PyObject *IndexFileGetIsTrusted(PyObject *Self,void*) {
return PyBool_FromLong((File->IsTrusted()));
diff --git a/python/indexrecords.cc b/python/indexrecords.cc
index d6a3263c..c7623cfd 100644
--- a/python/indexrecords.cc
+++ b/python/indexrecords.cc
@@ -63,7 +63,7 @@ static PyObject *indexrecords_lookup(PyObject *self,PyObject *args)
// Copy the HashString(), to prevent crashes and to not require the
// indexRecords object to exist.
PyObject *py_hash = PyHashString_FromCpp(new HashString(result->Hash), true, NULL);
- PyObject *value = Py_BuildValue("(Oi)",py_hash,result->Size);
+ PyObject *value = Py_BuildValue("(ON)",py_hash,MkPyNumber(result->Size));
Py_DECREF(py_hash);
return value;
}
diff --git a/python/pkgmanager.cc b/python/pkgmanager.cc
index 95e8c27e..a65c88f8 100644
--- a/python/pkgmanager.cc
+++ b/python/pkgmanager.cc
@@ -79,7 +79,7 @@ static PyObject *PkgManagerDoInstall(PyObject *Self,PyObject *Args)
pkgPackageManager::OrderResult res = pm->DoInstall(status_fd);
- return HandleErrors(Py_BuildValue("i",res));
+ return HandleErrors(MkPyNumber(res));
}
static PyObject *PkgManagerFixMissing(PyObject *Self,PyObject *Args)
diff --git a/python/pkgsrcrecords.cc b/python/pkgsrcrecords.cc
index aad3ef7e..4c889129 100644
--- a/python/pkgsrcrecords.cc
+++ b/python/pkgsrcrecords.cc
@@ -147,9 +147,9 @@ static PyObject *PkgSrcRecordsGetFiles(PyObject *Self,void*) {
PyObject *v;
for(unsigned int i=0;i<f.size();i++) {
- v = Py_BuildValue("(siss)",
+ v = Py_BuildValue("(sNss)",
f[i].MD5Hash.c_str(),
- f[i].Size,
+ MkPyNumber(f[i].Size),
f[i].Path.c_str(),
f[i].Type.c_str());
PyList_Append(List, v);
@@ -218,8 +218,10 @@ static PyObject *PkgSrcRecordsGetBuildDepends_old(PyObject *Self,void*) {
PyObject *v;
for(unsigned int i=0;i<bd.size();i++) {
- v = Py_BuildValue("(ssii)", bd[i].Package.c_str(),
- bd[i].Version.c_str(), bd[i].Op, bd[i].Type);
+ v = Py_BuildValue("(ssNN)", bd[i].Package.c_str(),
+ bd[i].Version.c_str(),
+ MkPyNumber(bd[i].Op),
+ MkPyNumber(bd[i].Type));
PyList_Append(List, v);
Py_DECREF(v);
}
diff --git a/python/policy.cc b/python/policy.cc
index 7eccb30c..b11e4dde 100644
--- a/python/policy.cc
+++ b/python/policy.cc
@@ -45,7 +45,7 @@ PyObject *policy_get_priority(PyObject *self, PyObject *arg) {
pkgPolicy *policy = GetCpp<pkgPolicy *>(self);
if (PyObject_TypeCheck(arg, &PyPackage_Type)) {
pkgCache::PkgIterator pkg = GetCpp<pkgCache::PkgIterator>(arg);
- return Py_BuildValue("i", policy->GetPriority(pkg));
+ return MkPyNumber(policy->GetPriority(pkg));
} else {
PyErr_SetString(PyExc_TypeError,"Argument must be of Package().");
return 0;
diff --git a/python/progress.cc b/python/progress.cc
index 5700a1b6..bd3c2ad6 100644
--- a/python/progress.cc
+++ b/python/progress.cc
@@ -92,12 +92,12 @@ void PyOpProgress::Update()
setattr(callbackInst, "op", "s", Op.c_str());
setattr(callbackInst, "subop", "s", SubOp.c_str());
setattr(callbackInst, "major_change", "b", MajorChange);
- setattr(callbackInst, "percent", "f", Percent);
+ setattr(callbackInst, "percent", "N", MkPyNumber(Percent));
#ifdef COMPAT_0_7
setattr(callbackInst, "Op", "s", Op.c_str());
setattr(callbackInst, "subOp", "s", SubOp.c_str());
setattr(callbackInst, "majorChange", "b", MajorChange);
- PyObject *arglist = Py_BuildValue("(f)", Percent);
+ PyObject *arglist = Py_BuildValue("(N)", MkPyNumber(Percent));
RunSimpleCallback("update", arglist);
#else
RunSimpleCallback("update");
@@ -156,19 +156,19 @@ void PyFetchProgress::UpdateStatus(pkgAcquire::ItemDesc &Itm, int status)
// Added object file size and object partial size to
// parameters that are passed to updateStatus.
// -- Stephan
- PyObject *arglist = Py_BuildValue("(sssikk)", Itm.URI.c_str(),
+ PyObject *arglist = Py_BuildValue("(sssNNN)", Itm.URI.c_str(),
Itm.Description.c_str(),
Itm.ShortDesc.c_str(),
- status,
- Itm.Owner->FileSize,
- Itm.Owner->PartialSize);
+ MkPyNumber(status),
+ MkPyNumber(Itm.Owner->FileSize),
+ MkPyNumber(Itm.Owner->PartialSize));
RunSimpleCallback("update_status_full", arglist);
// legacy version of the interface
- arglist = Py_BuildValue("(sssi)", Itm.URI.c_str(), Itm.Description.c_str(),
- Itm.ShortDesc.c_str(), status);
+ arglist = Py_BuildValue("(sssN)", Itm.URI.c_str(), Itm.Description.c_str(),
+ Itm.ShortDesc.c_str(), MkPyNumber(status));
if(PyObject_HasAttrString(callbackInst, "updateStatus"))
RunSimpleCallback("updateStatus", arglist);
@@ -240,11 +240,11 @@ void PyFetchProgress::Start()
pkgAcquireStatus::Start();
#ifdef COMPAT_0_7
- setattr(callbackInst, "currentCPS", "d", 0);
- setattr(callbackInst, "currentBytes", "d", 0);
- setattr(callbackInst, "currentItems", "k", 0);
- setattr(callbackInst, "totalItems", "k", 0);
- setattr(callbackInst, "totalBytes", "d", 0);
+ setattr(callbackInst, "currentCPS", "N", MkPyNumber(0));
+ setattr(callbackInst, "currentBytes", "N", MkPyNumber(0));
+ setattr(callbackInst, "currentItems", "N", MkPyNumber(0));
+ setattr(callbackInst, "totalItems", "N", MkPyNumber(0));
+ setattr(callbackInst, "totalBytes", "N", MkPyNumber(0));
#endif
RunSimpleCallback("start");
@@ -280,14 +280,14 @@ bool PyFetchProgress::Pulse(pkgAcquire * Owner)
return false;
}
- setattr(callbackInst, "last_bytes", "d", LastBytes);
- setattr(callbackInst, "current_cps", "d", CurrentCPS);
- setattr(callbackInst, "current_bytes", "d", CurrentBytes);
- setattr(callbackInst, "total_bytes", "d", TotalBytes);
- setattr(callbackInst, "fetched_bytes", "d", FetchedBytes);
- setattr(callbackInst, "elapsed_time", "k", ElapsedTime);
- setattr(callbackInst, "current_items", "k", CurrentItems);
- setattr(callbackInst, "total_items", "k", TotalItems);
+ setattr(callbackInst, "last_bytes", "N", MkPyNumber(LastBytes));
+ setattr(callbackInst, "current_cps", "N", MkPyNumber(CurrentCPS));
+ setattr(callbackInst, "current_bytes", "N", MkPyNumber(CurrentBytes));
+ setattr(callbackInst, "total_bytes", "N", MkPyNumber(TotalBytes));
+ setattr(callbackInst, "fetched_bytes", "N", MkPyNumber(FetchedBytes));
+ setattr(callbackInst, "elapsed_time", "N", MkPyNumber(ElapsedTime));
+ setattr(callbackInst, "current_items", "N", MkPyNumber(CurrentItems));
+ setattr(callbackInst, "total_items", "N", MkPyNumber(TotalItems));
// New style
if (!PyObject_HasAttrString(callbackInst, "updateStatus")) {
@@ -313,12 +313,12 @@ bool PyFetchProgress::Pulse(pkgAcquire * Owner)
return true;
}
#ifdef COMPAT_0_7
- setattr(callbackInst, "currentCPS", "d", CurrentCPS);
- setattr(callbackInst, "currentBytes", "d", CurrentBytes);
- setattr(callbackInst, "totalBytes", "d", TotalBytes);
- setattr(callbackInst, "fetchedBytes", "d", FetchedBytes);
- setattr(callbackInst, "currentItems", "k", CurrentItems);
- setattr(callbackInst, "totalItems", "k", TotalItems);
+ setattr(callbackInst, "currentCPS", "N", MkPyNumber(CurrentCPS));
+ setattr(callbackInst, "currentBytes", "N", MkPyNumber(CurrentBytes));
+ setattr(callbackInst, "totalBytes", "N", MkPyNumber(TotalBytes));
+ setattr(callbackInst, "fetchedBytes", "N", MkPyNumber(FetchedBytes));
+ setattr(callbackInst, "currentItems", "N", MkPyNumber(CurrentItems));
+ setattr(callbackInst, "totalItems", "N", MkPyNumber(TotalItems));
// Go through the list of items and add active items to the
// activeItems vector.
map<pkgAcquire::Worker *, pkgAcquire::ItemDesc *> activeItemMap;
@@ -351,11 +351,11 @@ bool PyFetchProgress::Pulse(pkgAcquire * Owner)
pkgAcquire::Worker *worker = iter->first;
pkgAcquire::ItemDesc *itm = iter->second;
- PyObject *itmTuple = Py_BuildValue("(ssskk)", itm->URI.c_str(),
+ PyObject *itmTuple = Py_BuildValue("(sssNN)", itm->URI.c_str(),
itm->Description.c_str(),
itm->ShortDesc.c_str(),
- worker->TotalSize,
- worker->CurrentSize);
+ MkPyNumber(worker->TotalSize),
+ MkPyNumber(worker->CurrentSize));
PyTuple_SetItem(itemsTuple, tuplePos, itmTuple);
}
diff --git a/python/string.cc b/python/string.cc
index a5016103..7abe2d17 100644
--- a/python/string.cc
+++ b/python/string.cc
@@ -91,7 +91,7 @@ PyObject *StrStringToBool(PyObject *Self,PyObject *Args)
char *Str = 0;
if (PyArg_ParseTuple(Args,"s",&Str) == 0)
return 0;
- return Py_BuildValue("i",StringToBool(Str));
+ return MkPyNumber(StringToBool(Str));
}
PyObject *StrStrToTime(PyObject *Self,PyObject *Args)
@@ -107,7 +107,7 @@ PyObject *StrStrToTime(PyObject *Self,PyObject *Args)
return Py_None;
}
- return Py_BuildValue("i",Result);
+ return MkPyNumber(Result);
}
PyObject *StrCheckDomainList(PyObject *Self,PyObject *Args)
diff --git a/python/tag.cc b/python/tag.cc
index 44cd06af..94554400 100644
--- a/python/tag.cc
+++ b/python/tag.cc
@@ -247,7 +247,7 @@ static PyObject *TagSecBytes(PyObject *Self,PyObject *Args)
if (PyArg_ParseTuple(Args,"") == 0)
return 0;
- return Py_BuildValue("i",GetCpp<pkgTagSection>(Self).size());
+ return MkPyNumber(GetCpp<pkgTagSection>(Self).size());
}
static PyObject *TagSecStr(PyObject *Self)
@@ -319,7 +319,8 @@ static PyObject *TagFileOffset(PyObject *Self,PyObject *Args)
{
if (PyArg_ParseTuple(Args,"") == 0)
return 0;
- return Py_BuildValue("i",((TagFileData *)Self)->Object.Offset());
+ return MkPyNumber(((TagFileData *)Self)->Object.Offset());
+
}
static char *doc_Jump =
diff --git a/python/tarfile.cc b/python/tarfile.cc
index 215d3a8c..cdfe0a7c 100644
--- a/python/tarfile.cc
+++ b/python/tarfile.cc
@@ -189,35 +189,35 @@ static PyObject *tarmember_get_linkname(PyObject *self, void *closure)
static PyObject *tarmember_get_mode(PyObject *self, void *closure)
{
- return Py_BuildValue("k", GetCpp<pkgDirStream::Item>(self).Mode);
+ return MkPyNumber(GetCpp<pkgDirStream::Item>(self).Mode);
}
static PyObject *tarmember_get_uid(PyObject *self, void *closure)
{
- return Py_BuildValue("k", GetCpp<pkgDirStream::Item>(self).UID);
+ return MkPyNumber(GetCpp<pkgDirStream::Item>(self).UID);
}
static PyObject *tarmember_get_gid(PyObject *self, void *closure)
{
- return Py_BuildValue("k", GetCpp<pkgDirStream::Item>(self).GID);
+ return MkPyNumber(GetCpp<pkgDirStream::Item>(self).GID);
}
static PyObject *tarmember_get_size(PyObject *self, void *closure)
{
- return Py_BuildValue("k", GetCpp<pkgDirStream::Item>(self).Size);
+ return MkPyNumber(GetCpp<pkgDirStream::Item>(self).Size);
}
static PyObject *tarmember_get_mtime(PyObject *self, void *closure)
{
- return Py_BuildValue("k", GetCpp<pkgDirStream::Item>(self).MTime);
+ return MkPyNumber(GetCpp<pkgDirStream::Item>(self).MTime);
}
static PyObject *tarmember_get_major(PyObject *self, void *closure)
{
- return Py_BuildValue("k", GetCpp<pkgDirStream::Item>(self).Major);
+ return MkPyNumber(GetCpp<pkgDirStream::Item>(self).Major);
}
static PyObject *tarmember_get_minor(PyObject *self, void *closure)
{
- return Py_BuildValue("k", GetCpp<pkgDirStream::Item>(self).Minor);
+ return MkPyNumber(GetCpp<pkgDirStream::Item>(self).Minor);
}
static PyObject *tarmember_repr(PyObject *self)