Pārlūkot izejas kodu

feat: Initialize django at the beginning

Cristian 5 gadi atpakaļ
vecāks
revīzija
e1d0b8bce7
5 mainītis faili ar 7 papildinājumiem un 13 dzēšanām
  1. 4 0
      archivebox/__init__.py
  2. 1 8
      archivebox/index/sql.py
  3. 0 5
      archivebox/main.py
  4. 1 0
      tests/fixtures.py
  5. 1 0
      tests/test_add.py

+ 4 - 0
archivebox/__init__.py

@@ -1 +1,5 @@
 __package__ = 'archivebox'
+from .config import setup_django, OUTPUT_DIR
+
+print(OUTPUT_DIR)
+setup_django()

+ 1 - 8
archivebox/index/sql.py

@@ -7,14 +7,13 @@ from django.db.models import QuerySet
 
 from .schema import Link
 from ..util import enforce_types
-from ..config import setup_django, OUTPUT_DIR
+from ..config import OUTPUT_DIR
 
 
 ### Main Links Index
 
 @enforce_types
 def parse_sql_main_index(out_dir: Path=OUTPUT_DIR) -> Iterator[Link]:
-    setup_django(out_dir, check_db=True)
     from core.models import Snapshot
 
     return (
@@ -24,7 +23,6 @@ def parse_sql_main_index(out_dir: Path=OUTPUT_DIR) -> Iterator[Link]:
 
 @enforce_types
 def remove_from_sql_main_index(snapshots: QuerySet, out_dir: Path=OUTPUT_DIR) -> None:
-    setup_django(out_dir, check_db=True)
     from django.db import transaction
 
     with transaction.atomic():
@@ -51,7 +49,6 @@ def write_link_to_sql_index(link: Link):
 
 @enforce_types
 def write_sql_main_index(links: List[Link], out_dir: Path=OUTPUT_DIR) -> None:
-    setup_django(out_dir, check_db=True)
     from django.db import transaction
 
     with transaction.atomic():
@@ -61,7 +58,6 @@ def write_sql_main_index(links: List[Link], out_dir: Path=OUTPUT_DIR) -> None:
 
 @enforce_types
 def write_sql_link_details(link: Link, out_dir: Path=OUTPUT_DIR) -> None:
-    setup_django(out_dir, check_db=True)
     from core.models import Snapshot
     from django.db import transaction
 
@@ -84,7 +80,6 @@ def write_sql_link_details(link: Link, out_dir: Path=OUTPUT_DIR) -> None:
 
 @enforce_types
 def list_migrations(out_dir: Path=OUTPUT_DIR) -> List[Tuple[bool, str]]:
-    setup_django(out_dir, check_db=False)
     from django.core.management import call_command
     out = StringIO()
     call_command("showmigrations", list=True, stdout=out)
@@ -101,7 +96,6 @@ def list_migrations(out_dir: Path=OUTPUT_DIR) -> List[Tuple[bool, str]]:
 
 @enforce_types
 def apply_migrations(out_dir: Path=OUTPUT_DIR) -> List[str]:
-    setup_django(out_dir, check_db=False)
     from django.core.management import call_command
     null, out = StringIO(), StringIO()
     call_command("makemigrations", interactive=False, stdout=null)
@@ -112,6 +106,5 @@ def apply_migrations(out_dir: Path=OUTPUT_DIR) -> List[str]:
 
 @enforce_types
 def get_admins(out_dir: Path=OUTPUT_DIR) -> List[str]:
-    setup_django(out_dir, check_db=False)
     from django.contrib.auth.models import User
     return User.objects.filter(is_superuser=True)

+ 0 - 5
archivebox/main.py

@@ -82,7 +82,6 @@ from .config import (
     check_dependencies,
     check_data_folder,
     write_config_file,
-    setup_django,
     VERSION,
     CODE_LOCATIONS,
     EXTERNAL_LOCATIONS,
@@ -305,7 +304,6 @@ def init(force: bool=False, out_dir: Path=OUTPUT_DIR) -> None:
     else:
         print('\n{green}[+] Building main SQL index and running migrations...{reset}'.format(**ANSI))
     
-    setup_django(out_dir, check_db=False)
     DATABASE_FILE = Path(out_dir) / SQL_INDEX_FILENAME
     print(f'    √ {DATABASE_FILE}')
     print()
@@ -1033,7 +1031,6 @@ def server(runserver_args: Optional[List[str]]=None,
     config.DEBUG = config.DEBUG or debug
 
     check_data_folder(out_dir=out_dir)
-    setup_django(out_dir)
 
     from django.core.management import call_command
     from django.contrib.auth.models import User
@@ -1070,7 +1067,6 @@ def manage(args: Optional[List[str]]=None, out_dir: Path=OUTPUT_DIR) -> None:
     """Run an ArchiveBox Django management command"""
 
     check_data_folder(out_dir=out_dir)
-    setup_django(out_dir)
     from django.core.management import execute_from_command_line
 
     if (args and "createsuperuser" in args) and (IN_DOCKER and not IS_TTY):
@@ -1087,7 +1083,6 @@ def shell(out_dir: Path=OUTPUT_DIR) -> None:
 
     check_data_folder(out_dir=out_dir)
 
-    setup_django(OUTPUT_DIR)
     from django.core.management import call_command
     call_command("shell_plus")
 

+ 1 - 0
tests/fixtures.py

@@ -6,6 +6,7 @@ import pytest
 @pytest.fixture
 def process(tmp_path):
     os.chdir(tmp_path)
+    print("should be at", tmp_path)
     process = subprocess.run(['archivebox', 'init'], capture_output=True)
     return process
 

+ 1 - 0
tests/test_add.py

@@ -32,6 +32,7 @@ def test_depth_flag_0_crawls_only_the_arg_page(tmp_path, process, disable_extrac
         env=disable_extractors_dict,
     )
     
+    breakpoint()
     archived_item_path = list(tmp_path.glob('archive/**/*'))[0]
     with open(archived_item_path / "index.json", "r") as f:
         output_json = json.load(f)