mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-22 23:15:49 +08:00
Syncing latest changes between public/private.
This commit is contained in:
parent
3c70c68257
commit
4ef4bc60cb
1
.idea/dictionaries/ericf.xml
generated
1
.idea/dictionaries/ericf.xml
generated
@ -1812,6 +1812,7 @@
|
||||
<w>valnew</w>
|
||||
<w>vals</w>
|
||||
<w>valuedispatch</w>
|
||||
<w>valueerror</w>
|
||||
<w>valuetext</w>
|
||||
<w>valuetype</w>
|
||||
<w>varargannotation</w>
|
||||
|
||||
@ -162,9 +162,13 @@ class AssetGather:
|
||||
|
||||
|
||||
def fetch_url(url: str, filename: Path, asset_gather: AssetGather) -> None:
|
||||
"""Fetch a given url to a given filename."""
|
||||
"""Fetch a given url to a given filename for a given AssetGather.
|
||||
|
||||
"""
|
||||
# pylint: disable=too-many-locals
|
||||
|
||||
import socket
|
||||
import threading
|
||||
|
||||
# We don't want to keep the provided AssetGather alive, but we want
|
||||
# to abort if it dies.
|
||||
@ -173,31 +177,41 @@ def fetch_url(url: str, filename: Path, asset_gather: AssetGather) -> None:
|
||||
|
||||
# Pass a very short timeout to urllib so we have opportunities
|
||||
# to cancel even with network blockage.
|
||||
ureq = urllib.request.urlopen(url, None, 1)
|
||||
file_size = int(ureq.headers["Content-Length"])
|
||||
print(f"\nDownloading: {filename} Bytes: {file_size:,}")
|
||||
req = urllib.request.urlopen(url, timeout=1)
|
||||
file_size = int(req.headers['Content-Length'])
|
||||
print(f'\nDownloading: {filename} Bytes: {file_size:,}')
|
||||
|
||||
def doit() -> None:
|
||||
time.sleep(1)
|
||||
print('dir', type(req.fp), dir(req.fp))
|
||||
print('WOULD DO IT', flush=True)
|
||||
# req.close()
|
||||
req.fp.close()
|
||||
|
||||
threading.Thread(target=doit).run()
|
||||
|
||||
with open(filename, 'wb') as outfile:
|
||||
file_size_dl = 0
|
||||
|
||||
# I'm guessing we want this decently big so we're running fewer cycles
|
||||
# of this loop during downloads and keeping our load lower. Our timeout
|
||||
# should ensure a minimum rate for the loop and this will affect
|
||||
# the maximum. Perhaps we should aim for a few cycles per second on
|
||||
# an average connection?..
|
||||
block_sz = 1024 * 1024
|
||||
block_sz = 1024 * 1024 * 1000
|
||||
time_outs = 0
|
||||
while True:
|
||||
try:
|
||||
data = ureq.read(block_sz)
|
||||
data = req.read(block_sz)
|
||||
except ValueError:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
print('VALUEERROR', flush=True)
|
||||
break
|
||||
except socket.timeout:
|
||||
print('TIMEOUT', flush=True)
|
||||
# File has not had activity in max seconds.
|
||||
if time_outs > 3:
|
||||
print("\n\n\nsorry -- try back later")
|
||||
print('\n\n\nsorry -- try back later')
|
||||
os.unlink(filename)
|
||||
raise
|
||||
print("\nHmmm... little issue... "
|
||||
"I'll wait a couple of seconds")
|
||||
print('\nHmmm... little issue... '
|
||||
'I\'ll wait a couple of seconds')
|
||||
time.sleep(3)
|
||||
time_outs += 1
|
||||
continue
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<!-- THIS FILE IS AUTO GENERATED; DO NOT EDIT BY HAND -->
|
||||
<!--DOCSHASH=0ccb27f0a14c6ad6f07acd13b8bd2fbb-->
|
||||
<!--DOCSHASH=266725d2f42aff8a96924a30416d8926-->
|
||||
<h4><em>last updated on 2020-03-12 for Ballistica version 1.5.0 build 20001</em></h4>
|
||||
<p>This page documents the Python classes and functions in the 'ba' module,
|
||||
which are the ones most relevant to modding in Ballistica. If you come across something you feel should be included here or could be better explained, please <a href="mailto:support@froemling.net">let me know</a>. Happy modding!</p>
|
||||
|
||||
@ -41,6 +41,7 @@ def test_assetmanager() -> None:
|
||||
"""Testing."""
|
||||
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
|
||||
manager = AssetManager(rootdir=Path(tmpdir))
|
||||
wref = weakref.ref(manager)
|
||||
manager.start()
|
||||
@ -52,7 +53,7 @@ def test_assetmanager() -> None:
|
||||
|
||||
manager.stop()
|
||||
|
||||
# Make sure nothing is keeping itself alive
|
||||
# Make sure nothing is keeping itself alive.
|
||||
del manager
|
||||
del gather
|
||||
assert wref() is None
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user