import sys
import logging
from pyo3_linter import (
default_macro_handlers,
find_possible_mistakes,
print_package_info,
process_dir,
parser,
PackageConfig,
)
logging.basicConfig(level=logging.WARNING)
logger = logging.getLogger()
def main():
args = parser.get_parser().parse_args()
if args.log_level is not None:
logger.setLevel(args.log_level)
package_config = PackageConfig(root_module="qcs_sdk", internal_module="_qcs_sdk")
annotated, exported = process_dir(args.base, package_config, default_macro_handlers())
reexports = {
"OAuthSession",
"AuthServer",
"RefreshToken",
"SecretRefreshToken",
"ClientCredentials",
"ExternallyManaged",
}
client_mod = exported["qcs_sdk.client"]
to_remove = {item for item in client_mod if item.rust_name in reexports}
for export in to_remove:
client_mod.discard(export)
issues = find_possible_mistakes(package_config, annotated, exported)
if args.show_mistakes:
for issue in issues:
print(issue.message)
if args.show_package:
print_package_info(annotated)
if issues:
print(f"\n {len(issues)} potential issue(s) discovered.", file=sys.stderr)
if not args.show_mistakes:
print(" (use --show-mistakes to see)", file=sys.stderr)
sys.exit(1)
if __name__ == "__main__":
main()