Skip to main content

用于快速调用文件夹下的py文件或者包

Project description

[TOC]


fileMapping

当前版本 0.3.7

用于快速调用文件夹下的py文件或者包

安装

使用以下命令通过pip安装fileMapping库:

pip install fileMapping

环境要求

fileMapping库的开发环境是: Python 3.13 Windows 10

如何使用?

示例代码

文件结构树

文件结构树

-
├─ main.py
├─ latest.log
├─ config.py / config.json
└─ plugins
   ├─ a.py
   ├─ b.py
   └─ C    # 是一个包
      ├─ __init__.py
      ├─ config.py
      └─ api.py
         └─ bilibili  # 是一个函数  bilibili(id) -> url
                      # 输入一个视频id,返回视频直链

config.py

# config.py

mysql = {
    # 数据库配置
    "host": "127.0.0.1",
    "port": 3306,
    "user": "root",
    "password": "123456",
}

config.json

{
  "mysql": {
    "host": "127.0.0.1",
    "port": 3306,
    "user": "root",
    "password": "123456"
  }
}

C\\config.py

# C\\config.py

bilibili_url = "https://www.bilibili.com/video/"

上述中,config.py 和 config.json 都是配置文件,我们可以根据自己的需求选择其中一个作为配置文件。



main.py

# main.py
from flask import Flask
from fileMapping import File, pathConversion, configConvertTodict


# 如果 config 是py文件   config.py 
import config

f = open('latest.log', 'w', encoding='utf-8')
f = File(pathConversion(__file__, 'plugins'), config=configConvertTodict(config), printPosition=f, printLog=True)
# 例 printPosition=f 日志输出位置为 latest.log 文件


# # 如果 config 是json文件   config.json
import json

with open('config.json', 'r') as f:
    config = json.load(f)
    f = File(pathConversion(__file__, 'plugins'), config=config, printLog=False)
    # 例 printLog=False 关闭日志输出


"""
上述中
- printPosition
- printLog
- config

可以不添加

"""

if __name__ == '__main__':
    app = Flask(__name__)
    f.run(app.route)

a.py

# a.py

from fileMapping import File


# 调用config-mysql-host
def main():
    print(File.public['config']['mysql']['host'])


def video_url() -> str:
    # 'BV1mNimYkErX' -> 是视频id
    return File.invoke.C.api.bilibili('BV1mNimYkErX')

b.py

# b.py

from fileMapping import File


def main(route):
    
    @route('/bilibili/<Bv_id>')
    def bv(Bv_id) -> str:
        return File.invoke.C.api.bilibili(Bv_id)

C\\__init__.py

# C\\__init__.py

from plugins.C import api  # 目前只能通过这样的方式导入, 计划在以后的版本改进


__fileName__ = ''
# 运行指定为 __init__.py 文件

__function__ = ''
# 只调用不运行

C\\api.py

# C\\api.py
from . import config


def bilibili(Bv_id) -> str:
    # 调用config-bilibili_url
    # 这里只是一个简单的事例
    # 这一行代码无法获取直链
    # 若想获取直链,请添加其他代码
    return config.bilibili_url + Bv_id

函数介绍

fileMapping.File

class File:
    """
    callObject
        - 调用对象
    invoke
        - 内行参数
    returnValue
        - 返回参数
    public
        - 公共
    """
    def __init__(self,
                 absolutePath: os.path,
                 screening=None,
                 config: dict = None,
                 printLog: bool =False,
                 printPosition=sys.stdout
        ):
        """
        映射文件夹下的Python文件或者包
        :param absolutePath: 当前的根目录绝对路径
        :param screening: 要映射的文件
        :param config: 配置文件 它将会被映射到 public['config']
        :param printLog: 是否打印日志
        :param printPosition: 日志输出位置 默认为 sys.stdout 在终端输出
        """

    def run(self, *args, name: str = None, **kwargs):
        """
        运行映射文件
        :return:
        """

fileMapping.pathConversion

def pathConversion(cpath: os.path, path: os.path) -> os.path:
    """
    当要转化的文件目录在调用文件的临旁时,则可以用这个快速转化

    例:
    |--->
        |-> plugIns
        |-> x.py

    其中x.py要调用plugIns文件夹时即可快速调用

    pathConversion(__file__, "plugIns")
    :param cpath: __file__
    :param path: 必须为文件夹
    :return:
    """

更新日志

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

filemapping-0.3.7.tar.gz (8.1 kB view details)

Uploaded Source

File details

Details for the file filemapping-0.3.7.tar.gz.

File metadata

  • Download URL: filemapping-0.3.7.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for filemapping-0.3.7.tar.gz
Algorithm Hash digest
SHA256 298f8114ac7d3502e83c309700b365f2c558a7cd72714d998005c4ec02f8121e
MD5 894b7ff4400b1171d8248aa84f31dafb
BLAKE2b-256 b184c298bc632de5c134c4fb7e7c9ce8afdf42ae0877eaba47a6aa1e51aca599

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page