shareddata 6.85.1__tar.gz → 6.85.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {shareddata-6.85.1/src/shareddata.egg-info → shareddata-6.85.2}/PKG-INFO +1 -1
- {shareddata-6.85.1 → shareddata-6.85.2}/setup.py +1 -1
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Table.py +15 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/TableDisk.py +55 -18
- {shareddata-6.85.1 → shareddata-6.85.2/src/shareddata.egg-info}/PKG-INFO +1 -1
- {shareddata-6.85.1 → shareddata-6.85.2}/LICENSE +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/MANIFEST.in +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/README.md +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/pyproject.toml +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/setup.cfg +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/ServerGunicorn.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/ServerWaitress.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/__init__.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/apidocs-dark.css +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/apidocs.yml +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/auth.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/constants.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/download_paths.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/download_slots.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/install/worker.ps1 +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/install/worker.sh +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/listcache.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/routes/__init__.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/routes/cache.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/routes/collections.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/routes/data.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/routes/downloads.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/routes/metadata.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/routes/operations.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/routes/schedules.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/routes/sqlite.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/routes/system.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/routes/tables.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/routes/timeseries.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/routes/web_routes.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/routes/workers.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/API/utils.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Auth/__init__.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Auth/bootstrap.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Auth/migrate.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Auth/store.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Auth/workers.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/CacheRedis.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/CollectionMongoDB.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/DataAPI/__init__.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/DataAPI/catalog.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/DataAPI/config.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/DataAPI/errors.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/DataAPI/indexes.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/DataAPI/readers.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/DataAPI/resolve.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/DataAPI/service.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Database.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Defaults.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/AWSEC2.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/AWSS3.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/AutoDocstrings.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/ClientAPI.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/ClientSocket.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/ClientWebSocket.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/LogHandlerAPI.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/LogReader.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/MongoDBClient.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/SaveTables.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/ServerSocket.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/ServerWebSocket.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/StreamsCache.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/StreamsPersist.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/SyncTable.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/TunnelWebSocket.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/IO/__init__.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Listing.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/LockWaiters.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Logger.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/MCP/__init__.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/MCP/__main__.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/MCP/client.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/MCP/server.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Metadata.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/MultiProc.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/OpenFIGI.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Redaction.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/ArchiveOldCollections.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/BatchJob.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/ContainerHealth.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/JobStore.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/RoutineCommand.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/RoutineOrigin.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/Schedule.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/ScheduleMirror.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/ScheduleMonitor.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/ScheduleStore.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/Scheduler.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/UpdateActiveJobs.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/Worker.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/WorkerBootstrap.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/WorkerLib.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/WorkerPool.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Routines/__init__.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/SQLite.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/SharedData.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/SharedNumpy.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/StreamKafka.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Symbol.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/TableIndex.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/TableIndexJitFunctions.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/TableIndexJitFunctionsManual.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/TableIndexJitGenerate.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/TableIndexJitHash.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/TableIndexJitLoc.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/TableProtocol.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/TableRead.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/TableRewrite.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/TimeSeriesDisk.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/TimeseriesContainer.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Users.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Utils.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/ADDING_A_PAGE.md +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/__init__.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/activity_logger.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/app.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/assets/dashAgGridComponentFunctions.js +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/assets/dashAgGridFunctions.js +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/assets/google_logo.png +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/assets/kafka_keys.js +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/assets/logs.css +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/assets/sched.css +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/assets/styles.css +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/auth.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/backends.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/config.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/containers.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/identity.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/kafka_view.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/mongo_view.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/proc.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/redis_view.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/route_health.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/route_registry.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/sched.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/schedule_editor.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/server.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/services.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/shell.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/standalone.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/static/account.js +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/static/custom.css +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/static/favicon.ico +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/static/favicon.png +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/static/logo.png +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/static/logo_96x96.png +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/static/shareddata-mark.svg +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/static/shell.css +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/static/shell.js +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/static/standalone.css +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/static/standalone.js +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/suggest.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/templates/account.html +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/templates/base.html +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/templates/claim.html +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/templates/claim_done.html +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/templates/dash.html +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/templates/index.html +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/templates/login.html +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/templates/login_2fa.html +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/templates/partials/navbar.html +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/templates/partials/scripts.html +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/templates/recovery_codes.html +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/templates/shell.html +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/templates/standalone.html +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/twofactor.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/utils.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/workerpool.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/__init__.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/build_info.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/fleet.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/preflight.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/private_files.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/release_backup.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/server.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/services.py +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/sharedmutexwin.pyd +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/shareddata.egg-info/SOURCES.txt +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/shareddata.egg-info/dependency_links.txt +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/shareddata.egg-info/entry_points.txt +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/shareddata.egg-info/requires.txt +0 -0
- {shareddata-6.85.1 → shareddata-6.85.2}/src/shareddata.egg-info/top_level.txt +0 -0
|
@@ -865,6 +865,21 @@ class Table:
|
|
|
865
865
|
raise RewriteError('automatic disk header migration requires staged publication')
|
|
866
866
|
|
|
867
867
|
############### DOWNLOAD ###############
|
|
868
|
+
def _remote_is_newer(self):
|
|
869
|
+
"""True when the remote head or tail is newer than this table's (what S3Download would
|
|
870
|
+
fetch). Nothing newer, no remote copy, or S3 switched off: False, and the local image stays."""
|
|
871
|
+
from SharedData.services import s3_enabled
|
|
872
|
+
if not s3_enabled() or self.hdr is None:
|
|
873
|
+
return False
|
|
874
|
+
head = S3GetMtime(str(self.headpath) + '.gzip', self.database_folder)
|
|
875
|
+
if head is not None and head > float(self.hdr['mtimehead']):
|
|
876
|
+
return True
|
|
877
|
+
if int(self.hdr['hastail']) == 1:
|
|
878
|
+
tail = S3GetMtime(str(self.tailpath) + '.gzip', self.database_folder)
|
|
879
|
+
if tail is not None and tail > float(self.hdr['mtimetail']):
|
|
880
|
+
return True
|
|
881
|
+
return False
|
|
882
|
+
|
|
868
883
|
@structural
|
|
869
884
|
def download(self):
|
|
870
885
|
"""
|
|
@@ -263,27 +263,64 @@ class TableDisk(Table):
|
|
|
263
263
|
@structural
|
|
264
264
|
def reload(self):
|
|
265
265
|
"""
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
- Marks the table as loaded in both header and mutex states.
|
|
276
|
-
- Handles and logs any exceptions that occur during the reload process.
|
|
277
|
-
- Ensures that all acquired resources are released after the operation, regardless of success or failure.
|
|
278
|
-
|
|
266
|
+
Replace the local image with the remote copy when that is newer.
|
|
267
|
+
|
|
268
|
+
Nothing newer remotely (or no remote copy, or S3 off) leaves the local table as it is, so
|
|
269
|
+
rows not uploaded yet are never discarded. Otherwise the whole remote image is built beside
|
|
270
|
+
data.bin under a stage name and installed by one os.replace, inside the caller's STRUCT
|
|
271
|
+
section: a failure before the replace leaves the old image untouched, and the epoch
|
|
272
|
+
published on leaving the section makes other processes reopen the new file. The old index
|
|
273
|
+
files describe the old rows, so they are removed and rebuilt.
|
|
274
|
+
|
|
279
275
|
Returns:
|
|
280
276
|
The records of the reloaded table.
|
|
281
277
|
"""
|
|
282
|
-
|
|
283
|
-
|
|
278
|
+
import stat
|
|
279
|
+
import uuid
|
|
280
|
+
from SharedData.TableRewrite import fsync_directory, read_layout, require_rewrite_support, sync_file
|
|
281
|
+
if not self._remote_is_newer():
|
|
282
|
+
return self.records
|
|
283
|
+
require_rewrite_support()
|
|
284
|
+
final = self.filepath
|
|
285
|
+
old = os.stat(final)
|
|
286
|
+
for leftover in final.parent.glob('data.bin.reload.*'): # the writer lock is held: a stage left by a dead reload
|
|
287
|
+
leftover.unlink()
|
|
288
|
+
stage = final.parent / ('data.bin.reload.' + uuid.uuid4().hex)
|
|
289
|
+
saved = (self.hdr, self.size, getattr(self, 'orig_hdr', None))
|
|
290
|
+
self.filepath, self.hdr = stage, None # None: download the remote image, not what is newer than the local one
|
|
291
|
+
self._bootstrap_record_download = True
|
|
284
292
|
try:
|
|
285
|
-
self.
|
|
286
|
-
self.
|
|
293
|
+
self._download_empty_image()
|
|
294
|
+
if self.hdr is None or not stage.is_file():
|
|
295
|
+
raise Exception('the remote copy of %s disappeared during the reload' % self.relpath)
|
|
296
|
+
sync_file(stage)
|
|
297
|
+
with open(stage, 'rb') as stream:
|
|
298
|
+
downloaded, _ = read_layout(stream)
|
|
299
|
+
os.chmod(stage, stat.S_IMODE(old.st_mode))
|
|
300
|
+
try:
|
|
301
|
+
os.chown(stage, old.st_uid, old.st_gid)
|
|
302
|
+
except OSError:
|
|
303
|
+
pass
|
|
304
|
+
os.replace(stage, final)
|
|
305
|
+
except BaseException:
|
|
306
|
+
self.filepath = final
|
|
307
|
+
self.hdr, self.size, self.orig_hdr = saved
|
|
308
|
+
try:
|
|
309
|
+
stage.unlink()
|
|
310
|
+
except FileNotFoundError:
|
|
311
|
+
pass
|
|
312
|
+
raise
|
|
313
|
+
finally:
|
|
314
|
+
self._bootstrap_record_download = False
|
|
315
|
+
self.filepath = final
|
|
316
|
+
fsync_directory(final.parent)
|
|
317
|
+
try:
|
|
318
|
+
self.free(acquire=False) # the old mappings and index arrays, flushed first
|
|
319
|
+
for name in ('dateidx.bin', 'pkey.bin', 'symbolidx.bin', 'portidx.bin'):
|
|
320
|
+
try:
|
|
321
|
+
(final.parent / name).unlink()
|
|
322
|
+
except FileNotFoundError:
|
|
323
|
+
pass
|
|
287
324
|
self.malloc()
|
|
288
325
|
if self.hasindex:
|
|
289
326
|
self.hdr['isidxcreated'] = 0
|
|
@@ -296,7 +333,7 @@ class TableDisk(Table):
|
|
|
296
333
|
Logger.log.error(errmsg)
|
|
297
334
|
raise Exception(errmsg)
|
|
298
335
|
return self.records
|
|
299
|
-
|
|
336
|
+
|
|
300
337
|
############### DELETE ###############
|
|
301
338
|
def delete_local(self):
|
|
302
339
|
"""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{shareddata-6.85.1 → shareddata-6.85.2}/src/SharedData/Web/assets/dashAgGridComponentFunctions.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|