Git Product home page Git Product logo

aiokeydb-py's Issues

python 3.11 support

Hi! First of all, huge thanks for this repo and all the work that you put into it!

I just discovered this, and it seems like you don't officially support python versions newer than 3.8, importing library in my python3.11 project results in a following error

Traceback (most recent call last):
  File "core.py", line 7, in <module>
    from aiokeydb import from_url
  File "venv/lib/python3.11/site-packages/aiokeydb/__init__.py", line 57, in <module>
    from aiokeydb.client.serializers import SerializerType
  File "venv/lib/python3.11/site-packages/aiokeydb/client/__init__.py", line 39, in <module>
    from aiokeydb.client.serializers import SerializerType, BaseSerializer
  File "venv/lib/python3.11/site-packages/aiokeydb/client/serializers/__init__.py", line 7, in <module>
    from aiokeydb.client.serializers._pickle import PickleSerializer, DillSerializer
  File "venv/lib/python3.11/site-packages/aiokeydb/client/serializers/_pickle.py", line 29, in <module>
    class DefaultProtocols:
  File "venv/lib/python3.11/site-packages/aiokeydb/client/serializers/_pickle.py", line 32, in DefaultProtocols
    dill: int = dill.HIGHEST_PROTOCOL
                ^^^^^^^^^^^^^^^^^^^^^
AttributeError: type object 'object' has no attribute 'HIGHEST_PROTOCOL'

The easy fix for me was installing dill, but i am not sure if I will face more problems further down the road with my 3.11 install :) Do you happen to have any suggestions or tips for me?

My intention is to use this in production, it will also be my first attempt at using KeyDb instead of Redis :) Thanks a lot!

Pydantic V2 migration

With Pydantic v2 there have been code changes and this module won't load. I fixed it for my use case with "pydantic<2" in requirements but I guess that's not a long term solution.

Error:

File "/usr/local/lib/python3.10/dist-packages/aiokeydb/__init__.py", line 57, in <module>
  from aiokeydb.client.serializers import SerializerType
File "/usr/local/lib/python3.10/dist-packages/aiokeydb/client/__init__.py", line 40, in <module>
  from aiokeydb.client.config import KeyDBSettings
File "/usr/local/lib/python3.10/dist-packages/aiokeydb/client/config.py", line 8, in <module>
  from aiokeydb.client.types import BaseSettings, validator, lazyproperty, KeyDBUri
File "/usr/local/lib/python3.10/dist-packages/aiokeydb/client/types.py", line 9, in <module>
  from pydantic import BaseSettings as _BaseSettings
File "/usr/local/lib/python3.10/dist-packages/pydantic/__init__.py", line 206, in __getattr__
  return _getattr_migration(attr_name)
File "/usr/local/lib/python3.10/dist-packages/pydantic/_migration.py", line 279, in wrapper
  raise PydanticImportError(
pydantic.errors.PydanticImportError: `BaseSettings` has been moved to the `pydantic-settings` package. See https://docs.pydantic.dev/2.0.1/migration/#basesettings-has-moved-to-pydantic-settings for more details.

Issue when using with pypy

When using with pypy I am getting this error

Traceback (most recent call last):
  File "c:\Users\User\Desktop\Python Programs\redis\keydbtesting.py", line 4, in <module>
    from aiokeydb import KeyDBClient
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\aiokeydb\__init__.py", line 3, in <module>     
    from aiokeydb.core import KeyDB, AsyncKeyDB
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\aiokeydb\core.py", line 28, in <module>        
    from aiokeydb.connection import (
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\aiokeydb\connection.py", line 39, in <module>  
    from aiokeydb.utils import set_ulimits
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\aiokeydb\utils\__init__.py", line 1, in <module>
    from .base import (
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\aiokeydb\utils\base.py", line 7, in <module>   
    from aiokeydb.types import ENOVAL
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\aiokeydb\types\__init__.py", line 1, in <module>
    from .base import *
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\aiokeydb\types\base.py", line 8, in <module>   
    from .compat import validator, root_validator, Field, PYD_VERSION, get_pyd_field_names, get_pyd_dict, pyd_parse_obj, get_pyd_schema        
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\aiokeydb\types\compat.py", line 12, in <module>    from lazyops.utils.imports import resolve_missing
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\lazyops\utils\__init__.py", line 1, in <module>    from .logs import logger
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\lazyops\utils\logs.py", line 9, in <module>    
    from lazyops.libs.logging import (
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\lazyops\libs\logging\__init__.py", line 6, in <module>
    from .main import (
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\lazyops\libs\logging\main.py", line 21, in <module>
    from loguru import _defaults
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\loguru\__init__.py", line 31, in <module>      
    logger.add(_sys.stderr)
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\loguru\_logger.py", line 979, in add
    exception_formatter = ExceptionFormatter(
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\loguru\_better_exceptions.py", line 157, in __init__
    self._lib_dirs = self._get_lib_dirs()
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\loguru\_better_exceptions.py", line 166, in _get_lib_dirs
    paths = {sysconfig.get_path(name, scheme) for scheme in schemes for name in names}
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\lib\site-packages\loguru\_better_exceptions.py", line 166, in <setcomp>
    paths = {sysconfig.get_path(name, scheme) for scheme in schemes for name in names}
  File "C:\Users\User\Downloads\pypy3.10-v7.3.12-win64\pypy3.10-v7.3.12-win64\Lib\sysconfig.py", line 596, in get_path
    return get_paths(scheme, vars, expand)[name]
KeyError: 'platstdlib'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.