Revert "Cleanup func imports, and small formatting changes."

This reverts commit 796563f
This commit is contained in:
ReAnzu 2018-02-26 19:52:02 -06:00
parent 796563f772
commit f11f4e9313
18 changed files with 145 additions and 147 deletions

View file

@ -1,13 +1,13 @@
import uuid
import hashlib import hashlib
import random import random
from collections import OrderedDict from collections import OrderedDict
from nacl.exceptions import InvalidkeyError from nacl.exceptions import InvalidkeyError
from nacl.pwhash import argon2id, verify
from szurubooru import config, model, errors, db from szurubooru import config, model, errors, db
from szurubooru.func import util from szurubooru.func import util
from nacl.pwhash import argon2id, verify
import uuid
RANK_MAP = OrderedDict([ RANK_MAP = OrderedDict([
(model.User.RANK_ANONYMOUS, 'anonymous'), (model.User.RANK_ANONYMOUS, 'anonymous'),

View file

@ -1,5 +1,5 @@
from datetime import datetime
from typing import Any, List, Dict from typing import Any, List, Dict
from datetime import datetime
class LruCacheItem: class LruCacheItem:

View file

@ -1,6 +1,5 @@
from datetime import datetime from datetime import datetime
from typing import Any, Optional, List, Dict, Callable from typing import Any, Optional, List, Dict, Callable
from szurubooru import db, model, errors, rest from szurubooru import db, model, errors, rest
from szurubooru.func import users, scores, serialization from szurubooru.func import users, scores, serialization

View file

@ -1,6 +1,5 @@
from datetime import datetime
from typing import Any, Optional, Callable, Tuple from typing import Any, Optional, Callable, Tuple
from datetime import datetime
from szurubooru import db, model, errors from szurubooru import db, model, errors

View file

@ -1,8 +1,8 @@
from datetime import datetime, timedelta
from typing import Optional from typing import Optional
from datetime import datetime, timedelta
from szurubooru.func import files, util from szurubooru.func import files, util
MAX_MINUTES = 60 MAX_MINUTES = 60

View file

@ -1,7 +1,5 @@
from typing import Any, Optional, List from typing import Any, Optional, List
import os import os
from szurubooru import config from szurubooru import config

View file

@ -1,14 +1,12 @@
import logging import logging
from io import BytesIO
from datetime import datetime from datetime import datetime
from typing import Any, Optional, Tuple, Set, List, Callable from typing import Any, Optional, Tuple, Set, List, Callable
import elasticsearch import elasticsearch
import elasticsearch_dsl import elasticsearch_dsl
import numpy as np import numpy as np
from PIL import Image
from io import BytesIO
from skimage.color import rgb2gray from skimage.color import rgb2gray
from PIL import Image
from szurubooru import config, errors from szurubooru import config, errors
# pylint: disable=invalid-name # pylint: disable=invalid-name
@ -249,9 +247,7 @@ def _safety_blanket(default_param_factory: Callable[[], Any]) -> Callable:
raise errors.ProcessingError('Not an image.') raise errors.ProcessingError('Not an image.')
except Exception as ex: except Exception as ex:
raise errors.ThirdPartyError('Unknown error (%s).' % ex) raise errors.ThirdPartyError('Unknown error (%s).' % ex)
return wrapper_inner return wrapper_inner
return wrapper_outer return wrapper_outer

View file

@ -1,15 +1,16 @@
import json from typing import List
import logging import logging
import math import json
import shlex import shlex
import subprocess import subprocess
from typing import List import math
from szurubooru import errors from szurubooru import errors
from szurubooru.func import mime, util from szurubooru.func import mime, util
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
_SCALE_FIT_FMT = ( _SCALE_FIT_FMT = (
r'scale=iw*max({width}/iw\,{height}/ih):ih*max({width}/iw\,{height}/ih)') r'scale=iw*max({width}/iw\,{height}/ih):ih*max({width}/iw\,{height}/ih)')

View file

@ -1,6 +1,5 @@
import email.mime.text
import smtplib import smtplib
import email.mime.text
from szurubooru import config from szurubooru import config

View file

@ -1,6 +1,5 @@
from typing import Optional
import re import re
from typing import Optional
APPLICATION_SWF = 'application/x-shockwave-flash' APPLICATION_SWF = 'application/x-shockwave-flash'
IMAGE_JPEG = 'image/jpeg' IMAGE_JPEG = 'image/jpeg'

View file

@ -1,6 +1,6 @@
import urllib.request import urllib.request
from szurubooru import config
from szurubooru import config, errors from szurubooru import errors
def download(url: str) -> bytes: def download(url: str) -> bytes:

View file

@ -1,14 +1,13 @@
from datetime import datetime
from typing import Any, Optional, Tuple, List, Dict, Callable
import hmac import hmac
from typing import Any, Optional, Tuple, List, Dict, Callable
from datetime import datetime
import sqlalchemy as sa import sqlalchemy as sa
from szurubooru import config, db, model, errors, rest from szurubooru import config, db, model, errors, rest
from szurubooru.func import ( from szurubooru.func import (
users, scores, comments, tags, util, users, scores, comments, tags, util,
mime, images, files, image_hash, serialization, snapshots) mime, images, files, image_hash, serialization, snapshots)
EMPTY_PIXEL = ( EMPTY_PIXEL = (
b'\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x01\x00\x00\x00\x00' b'\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x01\x00\x00\x00\x00'
b'\xff\xff\xff\x21\xf9\x04\x01\x00\x00\x01\x00\x2c\x00\x00\x00\x00' b'\xff\xff\xff\x21\xf9\x04\x01\x00\x00\x01\x00\x2c\x00\x00\x00\x00'
@ -659,7 +658,9 @@ def merge_posts(
if anti_dup_func is not None: if anti_dup_func is not None:
update_stmt = ( update_stmt = (
update_stmt.where(~sa.exists() update_stmt
.where(
~sa.exists()
.where(anti_dup_func(alias1, alias2)) .where(anti_dup_func(alias1, alias2))
.where(alias2.post_id == target_post_id))) .where(alias2.post_id == target_post_id)))
@ -733,7 +734,8 @@ def merge_posts(
def search_by_image_exact(image_content: bytes) -> Optional[model.Post]: def search_by_image_exact(image_content: bytes) -> Optional[model.Post]:
checksum = util.get_sha1(image_content) checksum = util.get_sha1(image_content)
return ( return (
db.session.query(model.Post) db.session
.query(model.Post)
.filter(model.Post.checksum == checksum) .filter(model.Post.checksum == checksum)
.one_or_none()) .one_or_none())
@ -754,7 +756,8 @@ def populate_reverse_search() -> None:
excluded_post_ids = image_hash.get_all_paths() excluded_post_ids = image_hash.get_all_paths()
post_ids_to_hash = ( post_ids_to_hash = (
db.session.query(model.Post.post_id) db.session
.query(model.Post.post_id)
.filter( .filter(
(model.Post.type == model.Post.TYPE_IMAGE) | (model.Post.type == model.Post.TYPE_IMAGE) |
(model.Post.type == model.Post.TYPE_ANIMATION)) (model.Post.type == model.Post.TYPE_ANIMATION))
@ -764,7 +767,8 @@ def populate_reverse_search() -> None:
for post_ids_chunk in util.chunks(post_ids_to_hash, 100): for post_ids_chunk in util.chunks(post_ids_to_hash, 100):
posts_chunk = ( posts_chunk = (
db.session.query(model.Post) db.session
.query(model.Post)
.filter(model.Post.post_id.in_(post_ids_chunk)) .filter(model.Post.post_id.in_(post_ids_chunk))
.all()) .all())
for post in posts_chunk: for post in posts_chunk:

View file

@ -1,6 +1,5 @@
import datetime import datetime
from typing import Any, Tuple, Callable from typing import Any, Tuple, Callable
from szurubooru import db, model, errors from szurubooru import db, model, errors
@ -41,7 +40,8 @@ def get_score(entity: model.Base, user: model.User) -> int:
assert user assert user
table, get_column = _get_table_info(entity) table, get_column = _get_table_info(entity)
row = ( row = (
db.session.query(table.score) db.session
.query(table.score)
.filter(get_column(table) == get_column(entity)) .filter(get_column(table) == get_column(entity))
.filter(table.user_id == user.user_id) .filter(table.user_id == user.user_id)
.one_or_none()) .one_or_none())

View file

@ -1,5 +1,4 @@
from typing import Any, List, Dict, Callable from typing import Any, List, Dict, Callable
from szurubooru import model, rest, errors from szurubooru import model, rest, errors

View file

@ -1,6 +1,5 @@
from datetime import datetime
from typing import Any, Optional, Dict, Callable from typing import Any, Optional, Dict, Callable
from datetime import datetime
from szurubooru import db, model from szurubooru import db, model
from szurubooru.func import diff, users from szurubooru.func import diff, users

View file

@ -1,11 +1,10 @@
from typing import Any, Optional, Dict, List, Callable
import re import re
from typing import Any, Optional, Dict, List, Callable
import sqlalchemy as sa import sqlalchemy as sa
from szurubooru import config, db, model, errors, rest from szurubooru import config, db, model, errors, rest
from szurubooru.func import util, serialization, cache from szurubooru.func import util, serialization, cache
DEFAULT_CATEGORY_NAME_CACHE_KEY = 'default-tag-category' DEFAULT_CATEGORY_NAME_CACHE_KEY = 'default-tag-category'
@ -116,7 +115,8 @@ def update_category_color(category: model.TagCategory, color: str) -> None:
def try_get_category_by_name( def try_get_category_by_name(
name: str, lock: bool = False) -> Optional[model.TagCategory]: name: str, lock: bool = False) -> Optional[model.TagCategory]:
query = ( query = (
db.session.query(model.TagCategory) db.session
.query(model.TagCategory)
.filter(sa.func.lower(model.TagCategory.name) == name.lower())) .filter(sa.func.lower(model.TagCategory.name) == name.lower()))
if lock: if lock:
query = query.with_lockmode('update') query = query.with_lockmode('update')
@ -141,7 +141,8 @@ def get_all_categories() -> List[model.TagCategory]:
def try_get_default_category( def try_get_default_category(
lock: bool = False) -> Optional[model.TagCategory]: lock: bool = False) -> Optional[model.TagCategory]:
query = ( query = (
db.session.query(model.TagCategory) db.session
.query(model.TagCategory)
.filter(model.TagCategory.default)) .filter(model.TagCategory.default))
if lock: if lock:
query = query.with_lockmode('update') query = query.with_lockmode('update')
@ -150,7 +151,8 @@ def try_get_default_category(
# category, get the first record available. # category, get the first record available.
if not category: if not category:
query = ( query = (
db.session.query(model.TagCategory) db.session
.query(model.TagCategory)
.order_by(model.TagCategory.tag_category_id.asc())) .order_by(model.TagCategory.tag_category_id.asc()))
if lock: if lock:
query = query.with_lockmode('update') query = query.with_lockmode('update')

View file

@ -1,9 +1,9 @@
from datetime import datetime import json
from typing import Any, Optional, Tuple, List, Dict, Callable import os
import re import re
from typing import Any, Optional, Tuple, List, Dict, Callable
from datetime import datetime
import sqlalchemy as sa import sqlalchemy as sa
from szurubooru import config, db, model, errors, rest from szurubooru import config, db, model, errors, rest
from szurubooru.func import util, tag_categories, serialization from szurubooru.func import util, tag_categories, serialization
@ -138,7 +138,8 @@ def serialize_tag(
def try_get_tag_by_name(name: str) -> Optional[model.Tag]: def try_get_tag_by_name(name: str) -> Optional[model.Tag]:
return ( return (
db.session.query(model.Tag) db.session
.query(model.Tag)
.join(model.TagName) .join(model.TagName)
.filter(sa.func.lower(model.TagName.name) == name.lower()) .filter(sa.func.lower(model.TagName.name) == name.lower())
.one_or_none()) .one_or_none())
@ -195,7 +196,8 @@ def get_tag_siblings(tag: model.Tag) -> List[model.Tag]:
pt_alias1 = sa.orm.aliased(model.PostTag) pt_alias1 = sa.orm.aliased(model.PostTag)
pt_alias2 = sa.orm.aliased(model.PostTag) pt_alias2 = sa.orm.aliased(model.PostTag)
result = ( result = (
db.session.query(tag_alias, sa.func.count(pt_alias2.post_id)) db.session
.query(tag_alias, sa.func.count(pt_alias2.post_id))
.join(pt_alias1, pt_alias1.tag_id == tag_alias.tag_id) .join(pt_alias1, pt_alias1.tag_id == tag_alias.tag_id)
.join(pt_alias2, pt_alias2.post_id == pt_alias1.post_id) .join(pt_alias2, pt_alias2.post_id == pt_alias1.post_id)
.filter(pt_alias2.tag_id == tag.tag_id) .filter(pt_alias2.tag_id == tag.tag_id)
@ -232,7 +234,8 @@ def merge_tags(source_tag: model.Tag, target_tag: model.Tag) -> None:
.where(alias1.tag_id == source_tag_id)) .where(alias1.tag_id == source_tag_id))
update_stmt = ( update_stmt = (
update_stmt update_stmt
.where(~sa.exists() .where(
~sa.exists()
.where(alias1.post_id == alias2.post_id) .where(alias1.post_id == alias2.post_id)
.where(alias2.tag_id == target_tag_id))) .where(alias2.tag_id == target_tag_id)))
update_stmt = update_stmt.values(tag_id=target_tag_id) update_stmt = update_stmt.values(tag_id=target_tag_id)
@ -246,7 +249,8 @@ def merge_tags(source_tag: model.Tag, target_tag: model.Tag) -> None:
sa.sql.expression.update(alias1) sa.sql.expression.update(alias1)
.where(alias1.parent_id == source_tag_id) .where(alias1.parent_id == source_tag_id)
.where(alias1.child_id != target_tag_id) .where(alias1.child_id != target_tag_id)
.where(~sa.exists() .where(
~sa.exists()
.where(alias2.child_id == alias1.child_id) .where(alias2.child_id == alias1.child_id)
.where(alias2.parent_id == target_tag_id)) .where(alias2.parent_id == target_tag_id))
.values(parent_id=target_tag_id)) .values(parent_id=target_tag_id))
@ -256,7 +260,8 @@ def merge_tags(source_tag: model.Tag, target_tag: model.Tag) -> None:
sa.sql.expression.update(alias1) sa.sql.expression.update(alias1)
.where(alias1.child_id == source_tag_id) .where(alias1.child_id == source_tag_id)
.where(alias1.parent_id != target_tag_id) .where(alias1.parent_id != target_tag_id)
.where(~sa.exists() .where(
~sa.exists()
.where(alias2.parent_id == alias1.parent_id) .where(alias2.parent_id == alias1.parent_id)
.where(alias2.child_id == target_tag_id)) .where(alias2.child_id == target_tag_id))
.values(child_id=target_tag_id)) .values(child_id=target_tag_id))

View file

@ -1,14 +1,13 @@
from contextlib import contextmanager
from datetime import datetime, timedelta
from typing import Any, Optional, Union, Tuple, List, Dict, Generator, TypeVar
import hashlib
import os import os
import hashlib
import re import re
import tempfile import tempfile
from typing import Any, Optional, Union, Tuple, List, Dict, Generator, TypeVar
from datetime import datetime, timedelta
from contextlib import contextmanager
from szurubooru import errors from szurubooru import errors
T = TypeVar('T') T = TypeVar('T')
@ -87,7 +86,6 @@ def is_valid_email(email: Optional[str]) -> bool:
class dotdict(dict): # pylint: disable=invalid-name class dotdict(dict): # pylint: disable=invalid-name
''' dot.notation access to dictionary attributes. ''' ''' dot.notation access to dictionary attributes. '''
def __getattr__(self, attr: str) -> Any: def __getattr__(self, attr: str) -> Any:
return self.get(attr) return self.get(attr)