How do you publish `python` packages that you maintain?

I have the same problem. I have two flakes, A and B. A should expose a Python library that B then uses. I tried to formulate A as follows (see How to create an overlay for a python package in a flake for inspiration):

{
  outputs = {}: {
    overlays.default = final: prev: {
        # Taken from
        # https://discourse.nixos.org/t/how-to-create-an-overlay-for-a-python-package-in-a-flake/46247
        pythonPackagesOverlays = (prev.pythonPackagesOverlays or [ ]) ++ [
          (python-final: python-prev: {
            mypackage = pkgs.python3Packages.callPackage ./mypackage.nix { };
          })
        ];

        python3 =
          let
            self = prev.python3.override {
              inherit self;
              packageOverrides = prev.lib.composeManyExtensions final.pythonPackagesOverlays;
            };
          in
          self;

        python3Packages = final.python3.pkgs;
      
    };
  }
}

And B then as:

{
  inputs = "A";
  
  outputs = {A}: let system = "x86_64-linux"; in {
    overlays.default = final: prev: {
      # my-application.nix uses "python3Packages.mypackage"
      my-application = final.callPackage ./my-application.nix {};
    };
    packages.${system} =
      let pkgs = import nixpkgs {
	    inherit system;
	    overlays = [ self.overlays.default ];
	  };
    in
    {
	  my-application = pkgs.my-application;
    };
  };
}

But it doesn’t work. python3Packages doesn’t contain mypackage.